0

当传入数据到达时,我有一个线程(WRITER)不断填充缓冲区(在我的例子中是一个向量)。而且我有另一个线程(阅读器)定期检查缓冲区的传入数据并在处理数据完成后清除缓冲区。一旦我看到一个建议改为使用两个缓冲区(A 和 B)的实现。WRITER 写入缓冲区 A,当读取数据的时间到了,READER 接管缓冲区 A,WRITER 开始读取 B ......并且这种翻转继续。

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

谢谢你

4

2 回答 2

2

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

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

于 2013-03-29T11:33:27.323 回答
1

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

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

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

于 2013-03-29T11:47:28.940 回答