我正在实现套接字服务器。 所有客户(最多10k)都应该保持联系。
这是我目前的设计:
将读取部分移动到线程池或任何其他更好的想法是否可以? 感谢。
答案 0 :(得分:1)
很难说。您不希望在后台运行10k个线程。您应该将读取部分保留在主线程中。这样,如果突然所有客户端开始询问事物,那么只将这些资源堆积在线程池队列中(最终不会有10k个线程同时运行)。此外,您可以通过这种方式获得更好的性能,因为您避免进行一些不必要的上下文切换(在您自己的线程之间)。
另一方面,如果您的客户端不太可能同时发送请求,或者回复非常简单,那么每个客户端只有一个线程可能更简单,并且避免主线程和线程池。