C++ boost::thread::interrupt-父线程可以中断子线程吗?

C++ boost::thread::interrupt-父线程可以中断子线程吗?,c++,multithreading,c++11,boost,boost-thread,C++,Multithreading,C++11,Boost,Boost Thread,我知道父线程可以对子线程的对象调用interrupt()。执行指定中断点时的子线程将引发异常,该异常需要被中断线程捕获 我的问题是我的子线程已挂起,因此它无法执行诸如boost::this\u thread::interruption\u point()之类的代码 在父线程中,在检测到子线程被挂起后不久,我尝试在子线程对象上调用join。但是线程\u interrupted未被引发 有没有办法中断已挂起的子线程/工作线程 线程没有父/子关系。一个线程可以在另一个线程上全部中断()。谢谢Slava

我知道父线程可以对子线程的对象调用
interrupt()
。执行指定中断点时的子线程将引发异常,该异常需要被中断线程捕获

我的问题是我的子线程已挂起,因此它无法执行诸如
boost::this\u thread::interruption\u point()
之类的代码

在父线程中,在检测到子线程被挂起后不久,我尝试在子线程对象上调用join。但是
线程\u interrupted
未被引发


有没有办法中断已挂起的子线程/工作线程

线程没有父/子关系。一个线程可以在另一个线程上全部中断()。谢谢Slava。我只是想强调代理/工作线程的关系。Boost doc说:“当被中断的线程在启用中断的情况下执行一个指定的中断点时(或者如果它当前在执行一个中断点时被阻塞),那么在被中断的线程中将抛出一个Boost::thread_interrupted异常。”我想知道是否可以由委托线程执行中断点:比如,worker.interrupt()和稍后的worker.join()?线程没有父/子关系。一个线程可以在另一个线程上全部中断()。谢谢Slava。我只是想强调代理/工作线程的关系。Boost doc说:“当被中断的线程在启用中断的情况下执行一个指定的中断点时(或者如果它当前在执行一个中断点时被阻塞),那么在被中断的线程中将抛出一个Boost::thread_interrupted异常。”我想知道是否可以由委托线程执行中断点:比如,worker.interrupt()和稍后的某个worker.join()?