08-总结
32.7 总结
函数pthread_cancel()允许某线程向另一个线程发送取消请求,要求目标线程终止。
目标线程如何响应,取决于其取消性状态和类型。如果禁用线程的取消性状态,那么请求会保持挂起(pending)状态,直至将线程的取消性状态置为启用。如果启用取消性状态,那么线程何时响应请求则依赖于取消性类型。若类型为延迟取消,则在线程下一次调用某个取消点(由SUSv3标准所规定的一系列函数之一)时,取消发生。如果为异步取消类型,取消动作随时可能发生(鲜有使用)。
线程可以设置一个清理函数栈,其中的清理函数属于由开发人员定义的函数,当线程遭到取消时,会自动调用这些函数以执行清理工作(例如,恢复共享变量状态,或解锁互斥量)。
更多信息
请参考列于29.10节的深入信息来源。