使用 C++11 标准库(在最终的唯一帮助下boost::thread
)是否有一种干净的方法来实现 N 个读者 - 1 个生产者解决方案,其中所有读者,一旦由生产者同时通知(std::condition_variable::notify_all()
例如) ,保证在生产者最终第二次进入其临界区之前进入其临界区。换句话说,所有被通知的读者必须观察到共享资源的相同状态。一旦生产者通知了 N 个读者,它就不能修改共享资源,直到所有 N 个读者都读完。请注意, boost::barrier 并不是我真正需要的,因为我事先不知道 N 。N 可能因一个通知而异。
问问题
92 次