gpt4 book ai didi

sockets - Boost Asio,io_service每个内核仅处理一个套接字

转载 作者:行者123 更新时间:2023-12-03 12:06:41 26 4
gpt4 key购买 nike

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

  • 服务器:从线程池(每个内核一个线程)运行io_service.run(),接受连接并从套接字读取数据是异步完成的。
  • 客户端:每个客户端都将连接并向服务器发送一个大文件(〜500MB)。

  • 问题:所有客户端都已连接到服务器(客户端数量>服务器核心数量); io_service每个线程仅处理一个连接/套接字,而直到处理的连接之一完成时,其他套接字的数据才被处理。

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

    最佳答案

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

    关于sockets - Boost Asio,io_service每个内核仅处理一个套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5136951/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com