c++ - 生产者/消费者,生产者比消费者快,我应该使用双缓冲区还是 spsc_queue?(C++)
问题描述
我有一个系统将数据从源中提取到缓冲区中,然后使用 ofstream 将该缓冲区写入文件。接收数据比写入磁盘快得多,所以我不想等待写入函数来接收额外的数据。我有 20 个接收器,每个都写入一个单独的二进制文件。
我基本上需要分别线程接收和写入函数,以便接收器可以在将上次接收的数据记录到磁盘时接收。我尝试了 spsc_queue,但它似乎不适用于缓冲区或结构队列(尝试了其中包含数据和元数据的结构)。有人有推荐的方法吗?我在想某种双缓冲机制。基本上我想最小化或删除编写器线程上的等待时间。
解决方案
推荐阅读
- wordpress - WooCommerce、wordpress 搜索、pre_get_posts 过滤器排除摘录和产品描述
- angular - Angular:删除http调用中的重复元素
- javascript - 谷歌图表仪表不显示,TypeError: google.visualization.Gauge is not a constructor
- node.js - swagger 工具是否只使用 json 格式
- node.js - 我需要一种方法让 Kafka 消费者提交特定消息
- json - 如何从 HttpClient 获取 json 文件?
- magento2 - 在 Magento2 如何为特定商店创建自定义较少文件?
- javascript - 单击两次禁用折叠
- java - 使用存储访问框架打开特定路径
- ios - XCode UI测试长按左右拖拽按钮