标签: c multithreading pthreads kill watchdog
我创建了一个在线程上运行的看门狗,并检查 still_alive 标志是否为真。该标志由看门狗控制的线程设置为真(在其无限循环结束时),并由看门狗设置为假。一切都由互斥锁保护。 通过(低频率)检查 still_alive,看门狗可以意识到某个线程是否卡在某处(即:它没有更新 still_alive 标志)。
现在,我想在线程卡住时采取措施。这种情况本不应该发生,但有时会发生,我希望针对这种情况制定应急计划。
如果这是一个好主意,我如何干净地杀死无响应的线程并重新创建它?