在c10k问题中,每个客户端通常使用一个线程,有什么最优的原因吗?
我们可以把5,10,或25每线程?业绩会否有任何负面的改变?
每个客户端都有一个线程,这对系统来说似乎很麻烦,如果我们每个线程有25个线程,那么我们可以有400个线程,而不是10000线程。
发布于 2014-04-23 18:02:02
处理10K+连接有两种完全不同的模型:
这两种模型都可以用于100 K以上的连接,而且这两种模型在某些方面都有它们的好处。直接比较,它们的区别如下:
Multi-Threaded:
Single-Threaded:
将这两种模式结合起来是可能的。在这种情况下,每个核心通常使用一个线程(而不是N个连接的一个线程)。这个模型有一些很好的用例。然而,也有一个巨大的问题:它结合了这两种模式的缺点。这意味着,您必须将精力花在线程安全、非阻塞和异步的所有方面。通常情况下,这种努力是纯模型的两倍。
这就是为什么在大多数应用程序中,纯模型通常比混合模型更可取的原因。例外是边缘组件,它们必须每秒处理数百万次请求,例如负载平衡器和代理。
https://stackoverflow.com/questions/23240495
复制相似问题