Multithreading boost线程在终止后是否可中断?

Multithreading boost线程在终止后是否可中断?,multithreading,boost,join,interrupt,Multithreading,Boost,Join,Interrupt,根据,谢天谢地,您可以加入一个已完成的线程,并且避免了只有在运行时才有条件地加入线程时出现的争用条件 但是thread::interrupt()呢?线程退出后是否可以调用它?是的,调用此方法是安全的 从: 如果*这是一个执行线程,则请求该线程 下一次进入某个预定义的 已启用中断的中断点,或者如果当前已启用 在调用其中一个预定义中断点时被阻止 已启用中断 当boost::thread对象(*this)不是“执行线程”时,这意味着它没有运行,调用此方法没有任何作用。线程是否可以安全地中断自身(访问线

根据,谢天谢地,您可以加入一个已完成的线程,并且避免了只有在运行时才有条件地加入线程时出现的争用条件


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

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

从:

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


boost::thread
对象(
*this
)不是“执行线程”时,这意味着它没有运行,调用此方法没有任何作用。线程是否可以安全地中断自身(访问线程对象)?导致在下一个中断点/睡眠时自动退出?我想是的。我不是100%相信,因为文档只说明了线程仍在运行时会发生什么,但我找不到任何关于线程未运行时会发生什么的明确说明。另一方面,当线程没有运行时,唯一合理的做法是什么都不做。。。