linux 线程学习

一.线程创建

pthread_create(tid,NULL,fun,void*arg) 正常返回0.

void * fun(void*arg);

二.线程终止

任意线程调用了exit,_Exit ,_exit.那么整个进程就会终止。

        单个线程退出:1.线程函数中 return或pthread_exit, 2.被其他 线程取消 调用pthread_concel(pid)

三.主线程等待线程结束

     pthread_join(tid,NULL); 正常返回0

四.线程清理函数。是在线程处理函数中调用,并且线程处理函数只能用pthread_exit退出时才会调用清理函数。

       void pthread_cleanup_push(fun1,void*arg); 加入线程清理函数

void pthread_cleanup_pop(int execute); 调用

例如:void fun1(void *arg){}

        void* fun(void*arg)

{

pthread_cleanup_push(fun1,void*arg);

........

pthread_cleanup_pop(0);

pthread_exit((void*)1);

}

五:分离线程:即线程一结束,终止状态等资源就被立即收回,主线程就不能调用pthread_join来等待线程结束状态。

  pthread_detach(tid)

六.对于一个线程写,其他线程读的变量要加锁。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值