是否可以知道boost :: asio :: io_service事件循环中挂起事件的数量?我正在查看reference,但没有看到任何此类功能。
我正在寻找这样的功能来实现动态可调整大小的线程池。如果可用,可以使用挂起事件的数量来确定是否需要向池中添加更多线程。
答案 0 :(得分:2)
假设asio和您的应用程序都正确编写,因此唯一的阻塞操作在事件调度循环中,为什么您需要比可用硬件资源更多的线程?即如果线程不阻塞而不是超额订阅则不会为您带来任何性能提升。
因此,您可以创建一个固定大小的线程池,或者只使用TBB创建它来处理任务(但是,TBB尚未用于阻止IO,因此不要使用TBB任务阻止等待)