linux 线程控制

本文详细介绍了Linux下线程控制的API,包括获取线程ID、线程创建、线程属性定制、线程退出及线程阻塞等待等操作。通过实例解释了如何使用pthread_join和pthread_detach函数来管理线程的终止状态。

一、Linux线程控制API

1. 获取线程自身的线程ID。


2.线程创建。

参数说明:

tidp: 当线程创建成功时,tidp指向的内存单元被设置为新创建线程的线程ID。

attr:attr参数用于定制各种不同的线程属性。设为NULL时,创建默认属性的线程。

start_rtn: 函数指针,新创建的线程从start_rtn函数的地址开始运行,该函数只有一个无类型指针参数arg,如果需要指向start_rtn函数传递的参数不止一个,那么需要将这些参数放到一个结构中,然后把这个结构的地址作为arg参数传入。


线程创建时并不能保证哪个线程会先运行(即不能保证是新创建线程先运行还是调用线程先运行)。新创建的线程可以访问进程的地址空间。

3.线程退出


调用pthread_join后,当前线程将一直阻塞,直到指定的线程退出。如果指定线程以return方式退出,则rval_ptr中保存返回码,如果是被取消,则rval_ptr指定的内存单元就置为PTHREAD_CANCELED。

注意,默认情况下,线程的终止状态会保存到对该线程调用pthread_join。所以,在线程结束时,一般要调用pthread_join来清除线程的终止状态。

如果线程已经处于分离状态,线程的底层存储资源可以在线程终止时立即被收回。当线程被分离时,并不能用pthread_join函数等待他的终止状态。对分离状态的线程进行pthread_join的调用会产生失败,返回EINVAL。

pthread_detach函数可以使线程进入分离状态。



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值