异步操作。增强asio缓冲区懒惰分配
现在我通过预分配的字节的缓冲区,例如:
s.async_receive_from(
boost::asio::buffer(preallocated_pointer, preallocated_size),
_remote_endpoint,
boost::bind(...)
);
是否有可能让懒惰的分配,这和其他的电话?
异步操作。增强asio缓冲区懒惰分配
现在我通过预分配的字节的缓冲区,例如:
s.async_receive_from(
boost::asio::buffer(preallocated_pointer, preallocated_size),
_remote_endpoint,
boost::bind(...)
);
是否有可能让懒惰的分配,这和其他的电话?
懒惰分配或allocating when the resource is needed可以使用boost::asio::null_buffers
来完成。可以使用null_buffers
在Boost.Asio中获得反应堆式操作。
ip::tcp::socket socket(my_io_service);
...
socket.non_blocking(true);
...
socket.async_read_some(null_buffers(), read_handler);
...
void read_handler(boost::system::error_code ec)
{
if (!ec)
{
std::vector<char> buf(socket.available());
socket.read_some(buffer(buf));
}
}
你们为何_lazy allocation_意味着:可以与第三方库集成,使用共享内存池等。Boost.Asio的documentation提供了一些信息和下面的示例代码是有用的? –