开发者学堂课程【物联网开发- Linux 高级程序设计全套视频:线程的取消类型】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/660/detail/11065
线程的取消类型
内容介绍
一.设置取消类型简介
二.运行过程
三.立即取消和不立即取消线程的取消类型
一.设置取消类型简介
pthread_setcancelstate
是设置取消状态,是设置这个线程是都能够被取消,是设置取消的状态,默认是取消点的时候才能够被取消,还可以设置取消类型。
二.运行过程
线程的取消类型
线程被取消后,该线程并不是马上终止,默认情况下线程执行到取消,运行到取消点的时候才结束,另外一种则是当被取消的时候,立马终止,这叫现程的取消类型,这个取消状态能否被取消然后默认是到取消点才取消,取消类型就是设置何时被取消,是立马终止还是运行到取消点才被终止,编程时可以通过 pathresd_setcancelyype 函数设置线程是否可以立即被取消。
三.立即取消和不立即取消
第一次参数是可以立即被取消
PTHREAD_CANCEL_ASYNCHRONOUS:立即取消
PTHREAD_CANCEL_DEFERRED:不立即被取消
oldtype:
保存调用线程原来的可取消类型的内存地址 到了取消点才会被取消,如果我在 while (1)没有冒号,加一个取消点,则不能被取消,但是可以调用 pathresd_setcancletype() 这个函数设置取消类型,当别的线程取消类型的时候,我这个则是立即被取消,以前的取消类型不管,第二个保存类型就直接有,即使循环里面没有取消点,也能够被取消,因为它设置了立马被取消,
如图
然后就结束了,不用到取消点也能被取消,因为它的取消类型是立马被取消,这是设置取消类型。