作者:宇智臣风 | 来源:互联网 | 2022-10-15 10:03
我的问题与此类似。但是在查看了所有答案之后,我仍然不知道pthread_cancel()可以提供什么样的安全保证。所以我想问一个更具体的问题:
假设在名为my_thread的pthread_t变量上调用了pthread_cancel(),那么有可能在执行pthread_cancel(my_thread)时,已经以某种方式终止了与my_thread对应的实际线程,并且内核将my_thread的值回收用于另一个新创建的线程,例如通过执行pthread_cancel(my_thread),另一个意外线程被杀死了?
1> Joseph Sible..:
在线程分离或连接之前,无法“回收”该值。只要您没有执行任何一项操作,即使线程已经终止,调用pthread_cancel也是安全的。
这是正确的答案。相关文本在[XSH 2.9.2 *线程ID *](http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_09_02)中。