我正在使用Boost Asio编写服务器应用程序:
问题:所有客户端都已连接到服务器(客户端数量>服务器核心数量); io_service每个线程仅处理一个连接/套接字,而直到处理的连接之一完成时,其他套接字的数据才被处理。
我希望io_service线程池同时处理来自所有已连接套接字的数据吗?
最佳答案
预期的行为是什么?如果您有调用io_service
的n
线程,则n
只能调用io_service::run()
处理程序。如果未完成的异步操作的数量大于n
,则它们的处理程序将在io_service
队列中等待,直到线程可以自由调用它们为止。
关于sockets - Boost Asio,io_service每个内核仅处理一个套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5136951/