`
AquariusM
  • 浏览: 146969 次
  • 性别: Icon_minigender_1
  • 来自: 南阳
社区版块
存档分类
最新评论

2010年12月24号---Linux学习之线程相关程序

阅读更多

关于 pthread_create:

 

UNIX环境创建线程函数,具体格式:

int pthread_create( pthread_t  * restrict tidp,  const pthread_attr_t  * restrict_attr,  void*(*start_rtn)(void*),  void * restrict arg );

返回值:若成功则返回0,否则返回出错编号

  返回成功时,由tidp指向的内存单元被设置为新创建线程的线程ID。attr参数用于制定各种不同的线程属性。新创建的线程从start_rtn函数的地址开始运行,该函数只有一个无指针参数arg,如果需要向start_rtn函数传递的参数不止一个,那么需要把这些参数放到一个结构中,然后把这个结构的地址作为arg的参数传入。

  linux下用C开发多线程程序,Linux系统下的多线程遵循POSIX线程接口,称为pthread。

 

关于 pthread_join:

 

函数pthread_join用来等待一个线程的结束。函数原型为:

extern int pthread_join __P (pthread_t __th, void **__thread_return);

  第一个参数为被等待的线程标识符,第二个参数为一个用户定义的指针,它可以用来存储被等待线程的返回值。这个函数是一个线程阻塞的函数,调用它的函数将一直等待到被等待的线程结束为止,当函数返回时,被等待线程的资源被收回。

  在Linux中,默认情况下是在一个线程被创建后,必须使用此函数对创建的线程进行资源回收,但是可以设置Threads attributes来设置当一个线程结束时,直接回收此线程所占用的系统资源,详细资料查看Threads attributes。

 

 

 

分享到:
评论

相关推荐

    03-多任务-线程(python和linux高级编程阶段 代码和截图)

    03-多任务-线程(python和linux高级编程阶段 代码和截图)03-多任务-线程(python和linux高级编程阶段 代码和截图)03-多任务-线程(python和linux高级编程阶段 代码和截图)03-多任务-线程(python和linux高级编程...

    xilinx-gcc-arm-linux-gnueabi-201801 WINDOWS下ZYNQ LINUX交叉编译器

    标题中的“xilinx-gcc-arm-linux-gnueabi-201801”指的是Xilinx为基于Cortex-A处理器的ZYNQ平台提供的Linux交叉编译工具链,该工具链是2018年1月版本。在嵌入式系统开发中,交叉编译器是一种特殊的编译器,它在一种...

    嵌入式Linux应用程序开发详解-第9章(多线程编程)

    ### 嵌入式Linux应用程序开发详解:多线程编程 #### 1. Linux线程概述 在嵌入式Linux应用程序开发中,多线程编程是实现高效资源管理和任务并行处理的关键技术之一。线程作为进程内的轻量级执行单元,能够显著减少...

    嵌入式Linux应用程序开发详解-第9章(多线程编程).pdf

    ### 嵌入式Linux应用程序开发详解:多线程编程 #### 9.1 多线程编程概述 ##### 9.1.1 学习目标 - 掌握Linux中线程的基本概念。 - 掌握Linux中线程的创建及使用。 - 掌握Linux中线程属性的设置。 - 能够独立编写多...

    jdk-8u341-linux-x64.tar.gz

    Java Development Kit(JDK)是Java编程语言的核心组件,它为开发者提供了编译、调试和运行Java应用程序所需的所有工具。`jdk-8u341-linux-x64.tar.gz` 是Oracle公司发布的针对Linux 64位操作系统的JDK 8的更新版本...

    arm-hisiv100nptl-linux.zip

    "nptl"可能指的是“Native POSIX线程库”,它是Linux系统中用于多线程编程的一个库。 描述中提到,这个文件可能是用户经过一番搜索后在某个平台上找到并分享的,因为它是相对罕见或者特定需求的资源。这暗示了它...

    dotnet-runtime-8.0.1-linux-x64.tar.gz

    标题中的"dotnet-runtime-8.0.1-linux-x64.tar.gz"指的是.NET运行时的一个版本8.0.1的Linux x64平台兼容的压缩包文件。这个文件是微软开发的.NET框架的一部分,用于在Linux操作系统上执行基于.NET编写的C#应用程序。...

    Linux-C-programming.rar_linux 程序

    1)Linux程序设计入门--基础知识 2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门--...7)Linux程序设计入门--线程操作 8)Linux程序设计入门--网络编程 9)Linux下C开发工具介绍

    操作系统上机-Linux多线程编程

    在操作系统的学习过程中,掌握Linux多线程编程是至关重要的技能之一。Linux作为一款广泛使用的开源操作系统,其强大的系统调用接口和丰富的库函数为开发者提供了实现多线程应用的便利条件。多线程编程允许程序同时...

    jdk-8u162-linux-x64

    **JDK全称为Java Development Kit,它是Oracle公司提供的用于开发和运行Java应用程序的重要工具集。在Java编程领域,JDK扮演着至关重要的角色,因为它是Java开发者的基础平台,提供了编译、调试和运行Java代码所需的...

    最新版linux jdk-8u311-linux-x64.tar_2.gz

    这个压缩包“jdk-8u311-linux-x64.tar_2.gz”包含了完整的Java Development Kit,使得开发者能够在Linux系统上进行Java程序的编写、编译、调试和运行。以下将详细介绍该版本JDK的相关知识点。 1. **Java ...

    jdk-6u45-linux-x64原包

    Java JDK (Java Development Kit) 是Oracle公司提供的用于开发和运行Java应用程序的重要工具集。这个"jdk-6u45-linux-x64原包"是针对Linux操作系统x86_64架构的Java 6更新45版本的安装包。这个版本在当时是一个流行...

    linux c++ 守护线程,判断程序是否运行,不存在就启动

    在Linux系统中,C++编程时常常需要创建守护线程(daemon thread)来执行特定的任务,比如监控系统状态、定时任务或确保某个服务始终运行。守护线程是一种长期运行的后台进程,它不依赖于终端会话,即使用户注销或者...

    jdk-8u151-linux-i586-demos.gz

    通过这个压缩包,开发者可以学习如何在Linux环境下配置和使用JDK 8u151,包括如何设置环境变量如`JAVA_HOME`,如何使用`javac`编译器进行程序开发,以及如何运行Java应用程序。此外,示例程序(demos)提供了丰富的...

    jdk-8u144-linux-x64

    标题“jdk-8u144-linux-x64”指的是Oracle公司发布的Java Development Kit(JDK)的一个特定版本,适用于Linux操作系统且为64位架构。JDK是用于开发和运行Java应用程序的重要工具集,包含了Java编译器、Java运行环境...

    server-jre-8u201-linux-x64.tar.gz

    "server-jre-8u201-linux-x64.tar.gz" 是Oracle公司提供的服务器版本的Java Development Kit(JDK)的归档文件,适用于64位的Linux操作系统。这个版本是JDK 8的更新版本,具体为Update 201(8u201)。在Java开发和...

    jdk-7u79-linux-x64.tar.gz.zip

    Java开发工具包(Java Development Kit,简称JDK)是Oracle公司提供的用于开发和运行Java应用程序的重要软件包。在本案例中,我们关注的是JDK的一个特定版本——"jdk-7u79-linux-x64",它是一个适用于64位Linux操作...

    jdk-6u45-linux-x64.bin

    这个二进制文件是一个可执行的压缩包,用于在Linux系统上安装JDK 1.6。 JDK 1.6是Java的一个重要版本,它引入了许多新特性、增强功能和错误修复。以下是该版本的一些关键知识点: 1. **泛型类型安全**:JDK 1.6...

Global site tag (gtag.js) - Google Analytics