gpt4 book ai didi

c++ - boost::lockfree::spsc_queue 和 boost::asio

转载 作者:行者123 更新时间:2023-11-30 02:25:25 28 4
gpt4 key购买 nike

我想直接从 boost 接收到 boost::lockfree:spsc_queue(或者,boost::circular_buffer)::asio::async_read 调用。看起来我需要编写一个包装器来使 spsc_queue 成为 MutableBuffer

谁能就这是否可能以及如何实现提供一些指导?

非常感谢

最佳答案

使用 asio 时,每个接收缓冲区必须是连续的。

由于 boost::circular_buffer 不是连续的,因此用作字节缓冲区相当不方便。不过,您仍然可以将它作为 2 个缓冲区使用 scatter-gather I/O 呈现给 asio .

用于 I/O 的高效且方便的循环缓冲区是内存页区域映射两次,它们之间没有任何填充。通过这种方式,您可以通过一个 read 系统调用读取循环缓冲区,而无需使用分散-聚集 I/O,也无需在解析/读取其内容时处理缓冲区不连续性。

关于c++ - boost::lockfree::spsc_queue 和 boost::asio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44140416/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com