【发布时间】:2012-05-16 20:34:29
【问题描述】:
根据How can I tell reliably if a boost thread has exited its run method?,谢天谢地,您可以加入已完成的线程并避免如果您必须仅在运行时有条件地加入线程时出现的竞争条件。
但是thread::interrupt() 呢?线程退出后可以调用吗?
【问题讨论】:
标签: multithreading boost join interrupt
根据How can I tell reliably if a boost thread has exited its run method?,谢天谢地,您可以加入已完成的线程并避免如果您必须仅在运行时有条件地加入线程时出现的竞争条件。
但是thread::interrupt() 呢?线程退出后可以调用吗?
【问题讨论】:
标签: multithreading boost join interrupt
是的,调用这个方法是安全的。
如果 *this 指代一个执行线程,请求该线程将 下次进入预定义之一时被中断 启用中断的中断点,或者如果它当前是 在对预定义中断点之一的调用中被阻塞 已启用中断。
当boost::thread 对象 (*this) 不是“执行线程”时,这意味着没有运行,调用此方法没有任何作用。
【讨论】: