Linux多线程3-3_线程取消
一、线程取消 将正在运行的线程取消执行,一个线程可以取消另一个线程,线程也可以自己取消自己。当线程被取消之后,会调用清理函数 二、取消函数 int pthread_cancel(pthread_t tid) 取消tid指定的线程,成功返回0。但是取消只是发送一个请求,并不意味着等待线程终止,而且发送成功也不意味着tid一定会终止 三、取消状态 1、概念 取消状态,就是线程对取消信号的处理方式,忽略或者响应。线程创建时默认响应取消信号 2、函数 int pthread_setcancelstate(int state, int *oldstate) 设置本线程对Cancel信号的反应,state有两种值:PTHREAD_CANCEL_ENABLE(缺省)和PTHREAD_CANCEL_DISABLE,分别表示收到信号后设为CANCLED状态和忽略CANCEL信号继续运行;old_state如果不为NULL则存入原来的Cancel状态以便恢复。 四、取消类型 1、概念 取消类型,是线程对取消信号的响应方式,立即取消或者延时取消。线程创建时默认延时取消 2、函数 int pthread_setcanceltype(int type, int *oldtype) 设置本线程取消动作的执行时机,type由两种取值:PTHREAD_CANCEL_DEFFERED和PTHREAD_CANCEL