服务每个核心只处理一个套接字

我正在使用Boost Asio编写服务器应用程序:

  • 服务器:从线程池(每个内核一个线程)运行io_service.run(),接受连接并从套接字读取数据是异步完成的。
  • 客户端:每个客户端连接并发送大量文件(〜500MB)到服务器。
  • 问题:所有客户端都连接到服务器(客户端数量>服务器核心数量); io_service每个线程只处理一个连接/套接字,而来自其他套接字的数据不会被处理,直到其中一个处理的连接完成。

    我希望来自所有连接的套接字的数据能够被io_service线程池同时处理?


    预期的行为是什么? 如果你有n线程调用io_service::run()你的io_service只能调用n处理程序。 如果未完成异步操作的数量大于n ,则它们的处理程序将在io_service队列中等待,直到线程可以自由调用它们。

    链接地址: http://www.djcxy.com/p/62669.html

    上一篇: service handles only one socket per core

    下一篇: c++