【linux】线程学习2-线程控制

线程控制:

在linux下的线程操作接口,都是库函数,因为linux并没有直接向上层提供线程操作的系统调用接口。

线程创建:

int pthread_create(pthread_t *tid,  pthread_attr_t *attr,void*(routine)(void*),void *arg)

tid:传入一个pthread_t类型变量的空间地址,用于接收线程id-线程的操作句柄。

attr:线程属性--大部分属性不用进行设置,通常置NULL

routine:函数指针,传入线程入口函数的地址,这个线程调度运行的就是这个函数

arg:给routine线程入口函数传入的参数

功能:创建一个线程,线程运行的是routine传入的地址对应的函数

返回值:成功则返回0 失败则返回非0值

线程终止:

1.在入口函数中return(在main中return退出的不仅是线程,还有整个进程)

2.在任意位置调用接口 void pthread_exit(void*retval) ,(retval:用于获取线程退出返回值)

3.在任意位置调用接口: int pthread_cancel(pthread_t tid)(tid:指定接口的tid操作句柄)

线程的等待和分离:

等待:

int pthread_join(pthread_t tid,void **retval);

tid:是要等待退出的指定线程的tid;

retval:用于获取线程的退出返回值;

功能:等待指定线程退出,获取退出线程的返回值,回收退出线程的所有资源

分离:

int pthread_detach(pthread_t tid);

tid:需要分离的线程的tid

功能:将指定线程状态从默认的joinable设置为detach状态,表示线程退出后制动释放所有资源不需要被等待

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值