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