thread_group 中的一个线程未被中断

One thread in thread_group is not interrupted

我正在使用 boost::thread_group,在发送信号后我捕捉到它并在 thread_group 上发送 interrupt_all()。几乎总是有一个(!)线程没有被中断,尽管他经历了中断点。我想也许使用双核处理器会导致它。但是,即使我设置为在一个核心上启动所有线程,也会出现此问题。

可能是什么原因?

创建我自己的(全局)interruption_point 只是我想到的一种解决方案。

我需要说的是,线程中断从来都不是几乎所有平台上的 "reliable" 功能。 如果你的程序依赖它,你最好重新设计。