如何使用
<threads.h>
中提供的函数来杀死 C 中的线程?似乎没有“直接”的方法可以做到这一点。注意:我知道 pthreads 提供了 pthread_cancel()
函数,但我想坚持使用 <threads.h>
函数。枚举 C11 标准为
<threads.h>
定义的 8 个函数,迭代它们并确定它们都没有达到您想要的效果,这很简单。
因此,如所写,您的要求无法得到满足。如果这就是您所关心的,那么您可以停止阅读此处。如果您关心实用的解决方案,那么这取决于您想要解决的
问题:
如果线程卡在您编写的代码中的某个位置,那么您只需添加一个_Atomic
pthread_cancel
正在做的事情。如果您有一个线程卡在您调用的代码中的某个位置但无法控制,那么您需要现有的同步点。如果您调用的代码使用 pthread_cancel
thrd_*
-API 簿记数据。如果你有一个线程陷入内核模式,那么你绝对无能为力。没有上帝,甚至SIGKILL