终止后,提升线程是否可以中断?

时间:2012-05-16 20:34:29

标签: multithreading boost join interrupt

根据How can I tell reliably if a boost thread has exited its run method?,谢天谢地你可以加入一个完成的线程,并避免因为只有在运行时必须有条件地加入一个线程而出现的竞争条件。

但是thread::interrupt()呢?可以在线程退出后调用它吗?

1 个答案:

答案 0 :(得分:3)

是的,调用此方法是安全的。

来自documentation

  

如果*这是指执行线程,请求该线程   下次进入其中一个预定义时被中断   启用中断的中断点,或者当前是否为中断点   在调用其中一个预定义的中断点时被阻止   中断已启用。

boost::thread对象(*this)不是“执行线程”时,表示未运行,调用此方法不执行任何操作