boost :: asio :: io_service事件循环中的事件数

时间:2014-06-05 23:25:33

标签: c++ multithreading boost boost-asio boost-thread

是否可以知道boost :: asio :: io_service事件循环中挂起事件的数量?我正在查看reference,但没有看到任何此类功能。

我正在寻找这样的功能来实现动态可调整大小的线程池。如果可用,可以使用挂起事件的数量来确定是否需要向池中添加更多线程。

1 个答案:

答案 0 :(得分:2)

假设asio和您的应用程序都正确编写,因此唯一的阻塞操作在事件调度循环中,为什​​么您需要比可用硬件资源更多的线程?即如果线程不阻塞而不是超额订阅则不会为您带来任何性能提升。

因此,您可以创建一个固定大小的线程池,或者只使用TBB创建它来处理任务(但是,TBB尚未用于阻止IO,因此不要使用TBB任务阻止等待)