【发布时间】:2013-10-23 21:20:17
【问题描述】:
boost::condition_variable::notify_one() 函数是自动恢复它正在解除阻塞的线程的执行,还是未定义并取决于操作系统如何调度线程?
我不太熟悉线程以及操作系统如何与它们交互,因此对 notify_one() 实现的任何了解都会有所帮助。
谢谢
【问题讨论】:
标签: c++ multithreading boost boost-thread
boost::condition_variable::notify_one() 函数是自动恢复它正在解除阻塞的线程的执行,还是未定义并取决于操作系统如何调度线程?
我不太熟悉线程以及操作系统如何与它们交互,因此对 notify_one() 实现的任何了解都会有所帮助。
谢谢
【问题讨论】:
标签: c++ multithreading boost boost-thread
Boost 不会恢复,也不会安排任何事情,它会与操作系统对话,而操作系统会负责多任务处理。操作系统很可能会在未来某个时间解除对线程的阻塞;你可以拥有一个具有保证的实时操作系统(例如“未阻塞的线程将始终在 X 毫秒内开始执行”),但 Boost 不会尝试保证这一点。
【讨论】: