1
我正在使用boost asio库。这是我实现boost asio io_service对象和底层线程
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));
}
然后我通过IOService对象的这个实例作为参数,每当我需要一个IO服务对象(如异步读/写/定时器)。如果我需要处理大量的异步操作,我只是增加线程数。
有些同事创建多个io服务对象只有一个工作线程。
哪一个是正确的实现?可以改进吗?
在任何情况下,请注意,增加超出内核数量的线程数通常没有意义。 – 2013-05-02 06:53:14