标签: c++ synchronization
我有一个线程(WRITER),当输入数据到达时,它会连续填充缓冲区(在我的情况下是一个向量)。 我有另一个线程(READER)定期检查缓冲区的传入数据,并在处理完数据后清除缓冲区。 一旦我看到一个实现建议有两个缓冲区(A和B)。 WRITER写入缓冲区A,当读取数据时,READER接管缓冲区A,WRITER开始读入B ...并且这种翻转继续。
我用谷歌搜索参考或示例代码,但找不到任何。 你能建议我参考一下吗? 此外,这是最好和最简单的方法吗?
谢谢
答案 0 :(得分:2)
最简单的解决方案是在Boost库的帮助下使用同步队列。
在代码项目here上有一篇关于此问题的文章,以及Google上无数的例子。
答案 1 :(得分:1)
您可以找到许多实现同步队列的示例和提示:
Implementing a Thread-Safe Queue using Condition Variables
C++11 Concurrency Tutorial – Part 3: Advanced locking and condition variables