标题是非常自我解释的,因为什么时候是实际的"取消点"? POSIX要求read
是一个取消点,但是当线程首次调用read
时,或者一旦完成?什么时候POSIX要求取消线程?
答案 0 :(得分:3)
答案 1 :(得分:2)
在Linux上," man 7 pthreads"包含这个:
POSIX.1指定必须取消某些功能,并且某些其他功能可以取消 点。如果线程可取消,则延迟其可取消性类型和取消请求 正在等待线程,然后线程在调用取消函数时被取消 - 要点。
我读到这意味着当读取"读取"而不是"在读取期间#34; ...
时它是可取消的但是,如果这是您关心的问题,并且您不希望在代码的关键部分取消特定线程,则可以使用" PTHREAD_CANCEL_DISABLE&#调用" pthread_setcancelstate() 34;在关键部分之后你可以再次调用它,这次使用" PTHREAD_CANCEL_ENABLE"。