需要一个好的同步读写解决方案

need a good solution for synchronized read write

本文关键字:同步 读写 解决方案 一个      更新时间:2023-10-16

我有一个线程(WRITER),它在传入数据到达时不断填充缓冲区(在我的例子中是一个向量)。我还有另一个线程(READER),定期检查传入数据的缓冲区,并在处理数据完成后清除缓冲区。有一次我看到一个实现建议有两个缓冲区(A和B)代替。WRITER写缓冲区A,到了读时间,READER接管缓冲区A, WRITER开始读缓冲区B…这种翻转还在继续。

我搜索了一个参考或示例代码,但找不到任何。你能给我推荐一个推荐人吗?此外,这是最好和最简单的方法吗?

thank you

最简单的解决方案是在Boost库的帮助下使用同步队列

在CodeProject上有一篇关于这个的文章,在Google上也有无数的例子。

您可以找到许多实现同步队列的示例和技巧:

使用条件变量实现线程安全队列

c++ 11并发教程-第3部分:高级锁定和条件变量