thread_group 中的一个线程未被中断
One thread in thread_group is not interrupted
我正在使用 boost::thread_group,在发送信号后我捕捉到它并在 thread_group 上发送 interrupt_all()。几乎总是有一个(!)线程没有被中断,尽管他经历了中断点。我想也许使用双核处理器会导致它。但是,即使我设置为在一个核心上启动所有线程,也会出现此问题。
可能是什么原因?
创建我自己的(全局)interruption_point 只是我想到的一种解决方案。
我需要说的是,线程中断从来都不是几乎所有平台上的 "reliable" 功能。
如果你的程序依赖它,你最好重新设计。
我正在使用 boost::thread_group,在发送信号后我捕捉到它并在 thread_group 上发送 interrupt_all()。几乎总是有一个(!)线程没有被中断,尽管他经历了中断点。我想也许使用双核处理器会导致它。但是,即使我设置为在一个核心上启动所有线程,也会出现此问题。
可能是什么原因?
创建我自己的(全局)interruption_point 只是我想到的一种解决方案。
我需要说的是,线程中断从来都不是几乎所有平台上的 "reliable" 功能。 如果你的程序依赖它,你最好重新设计。