微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

生产者/消费者的生产者比消费者快,我应该使用双缓冲区还是 spsc_queue? (C++)

如何解决生产者/消费者的生产者比消费者快,我应该使用双缓冲区还是 spsc_queue? (C++)

我有一个系统可以将数据从源提取到缓冲区,然后使用 ofstream 将该缓冲区写入文件。接收数据比写入磁盘快得多,所以我不想等待写入函数来接收额外的数据。我有 20 个接收器,每个接收器都写入一个单独的二进制文件

我基本上需要分别线程化接收和写入函数,以便接收者可以在上次接收的数据被记录到磁盘的同时接收。我尝试过 spsc_queue 但它似乎不适用于缓冲区或结构队列(尝试了一个包含数据和元数据的结构)。有没有人有推荐的方法?我在想某种双缓冲机制。基本上我想最小化或删除编写器线程上的等待时间。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。