我正在使用 boost asio 库。这是我的实现
boost::asio::io_service ioservice;
boost::asio::io_service::work work(ioservice);
boost::thread_group threads;
for (int i = 0; i < 10; i++)
{
threads.create_thread(
boost::bind(&boost::asio::io_service::run, &ioservice));
}
然后,每当我需要 io 服务对象(例如异步读/写/定时器)时,我都会将此 ioservice 对象实例作为参数传递。如果我需要处理大量异步操作,我只需增加线程数。
一些同事只用一个工作线程创建多个 io 服务对象。
哪一个是正确的实现?可以改进吗?