![]() |
1
5
是的,你的推理基本上是正确的。您将为每个核心创建一个线程,为每个线程创建一个IO服务实例,并在每个线程中调用IO服务.run()。 然而,问题是你是否真的会那样做。我看到的问题是:
我的建议是拥有一个IO服务实例,并在每个核心的线程中调用IO服务.run()。如果您的性能不足,或者每个连接有大量CPU的连接类,并且您可以获得缓存胜利,那么将这些连接转移到特定的IO服务实例。 在这种情况下,您应该进行分析,看看有多少缓存未命中会让您付出代价,以及在哪里。 |
![]() |
2
2
如果您的服务器应用程序应该在Windows计算机上运行,那么您应该考虑使用IO完成端口。 它能够将活动线程的数量限制为核心的数量。它将IO事件从理论上无限数量的套接字分布到活动线程。调度由操作系统完成。 Here 是一个很好的例子。 |
![]() |
3
0
你可以用单人间
|
![]() |
mig21 bis · 带套接字的SSL_set_fd地址边界错误 2 年前 |
![]() |
hollow · 在读写C中的套接字时,为什么要使用循环缓冲区? 2 年前 |
![]() |
Filipe · 通过http python发送图像 6 年前 |
|
Mr. Rogers · epoll_wait事件的epoll顺序 6 年前 |
![]() |
Michael Beer · 查找插座的传输类型 6 年前 |