【发布时间】:2015-07-18 07:52:36
【问题描述】:
我有一个共享队列(使用单例队列包装器实现)以及一个读取器线程和一个写入器线程。当写入线程将元素(入队)添加到队列时,我还有一种机制可以通知读取线程。阅读器线程在收到通知时仅将一个元素出列。在这种情况下是否需要读写锁。
由于 writer 只是 enqueing 和 reader dequeing 我觉得不需要锁,如果 reader 在 dequeing 时检查队列大小。
【问题讨论】:
-
今天单身人士到底怎么了?
-
需要更多细节,到目前为止我能提供的最好的就是“也许”
-
您几乎可以肯定确实需要一把锁。但正如 Jasen 所提到的,更多细节(即代码)会很好,以便可以给出更具体的 cmets。
-
编写器线程会在每次插入时通知阅读器,阅读器在收到通知时仅读取一个元素。对吗?
-
是的。我会更新问题
标签: c++ multithreading queue readerwriterlock