linux高编线程-------线程的取消

有8种方式使进程终止,其中前5种为正常终止,它们是   

1:从 main 返回   
2:调用 exit   
3:调用 _exit 或 _Exit   
4:最后一个线程从其启动例程返回   
5:最后一个线程调用 pthread_exit   异常终止有3种,它们是   
6:调用 abort   
7:接到一个信号并终止   
8:最后一个线程对取消请求做出响应 

线程在运行的过程中经常会用到线程取消。

/**************************
 *功能:发送一个线程取消请求
 *参数:取消的线程
 *返回值:成功返回0,失败返回非0的errnum
 * ***********************/
int pthread_cancel(pthread_t thread);

注意:先取消再收尸

取消有两种状态:允许和不允许

允许取消: 异步取消

    (默认)推迟取消: 推迟到cancel点再响应:POSIX定义的cancel点,都是可能引发阻塞的系统调用。

设置cancel点相关函数:

/**********设置线程是否允许被取消***********/
int pthread_setcancelstate(int state ,int *oldstate);
/*************选择线程取消方式***********/
int pthread_setcanceltype(int type, int *oldtype);
/***************取消点**************/
void pthread_testcancel(void);

线程分离:

/************分离一个线程*************/
int pthread_detach(pthread_t thread);

无法用pthread_join() 函数收尸 

 

 

       

 

转载于:https://www.cnblogs.com/muzihuan/p/5343276.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值