Linux多线程编程常用操作(转)

线程常用操作


1.分离线程
  线程分为两种:分离线程和未分离线程,这两种方式标志着线程的终止方式,系统默认创建的是未分离线程,可以根据需要对其进行分离,在线程使用过程中,如果对线程的终止信息没有需求的话,通常使用分离线程,只有与线程终止同步操作时才使用非分离线程
int pthread_detach(pthread_t tid)
返回值为0表示调用成功,表示tid指明的线程不合防,ESRCH 表示该线程不是一个未分离的线程
 对线程进行分离,实际上就是告诉系统的线程库,当指定的线程终止的时候可以回收它所占用的内存和其他的资源,而无需等待其他线程对其进行回收。
 如果线程没有终止时,调用该函数将不会终止线程的执行,此外该函数不可以被多次使用。

 

2.等待线程结束
 int pthread_join(pthread_t tid,void*status)
tid为等待结束的线程id号,且该线程必须是未分离线程
status为线程结束的返回状态码,若status不为NULL则线程返回状态值放在status指针所指向的内存中。

 

3.终止线程
线程终止有两种情况,一种是线程函数结束线程自动结束,另外一种是使用pthread_exit()函数终止当前线程。
int pthread_exit(void*status)
如果当前线程是分离的,那么status将会被忽略,当前线程资源立即回收;如果是未分离的,则等待其他线程使用pthread_join函数与之同步,再回收资源。

 

4.获取线程标识符
函数pthread_t pthread_self(void)
使用该函数可以获取当前线程的标识符,返回值即是。

 

5.比较线程标识符
比较线程标识符可以识别线程属性,进而确定对线程操作的内容,比较功能常常用来识别线程是否是同一个线程
int pthread_equal(pthread_t tid1,pthread_t tid2)
当tid1和tid2相同的时候返回非0值,否则返回0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值