【发布时间】:2014-01-01 21:57:51
【问题描述】:
场景:
在对象 A(线程 A)内部,正在异步读取和写入 boost::asio::ip::tcp::socket。
对象 B(线程 B)将数据发送到对象 A 的数据队列。
对象 A 应尽快将数据写入其数据队列中。
如何高效实现第三点?
现在我正在这样做:
队列中可能没有数据。
socket->async_send(data, handler);
内部处理程序:回到第二点。
我担心这种方法效率非常低 - 大多数时候使用零长度数据调用 async_send,直到可以发送实际数据。
也许更好的方法是在对象 A 中增加一个线程,在发布新数据后立即在套接字上执行同步写入?从对象 B 的线程执行写入是没有问题的。
【问题讨论】:
标签: c++ boost boost-asio