gpt4 book ai didi

multithreading - 套接字服务器中每个客户端连接有新线程?

转载 作者:行者123 更新时间:2023-12-04 07:46:02 26 4
gpt4 key购买 nike

我正在尝试每次优化与TCP套接字服务器的多个连接。

每当我收到连接请求时,在监听服务器中启动新线程是否被认为是好的做法,甚至是合理的做法?

我应该什么时候开始担心基于此基础结构的服务器?直到不再有意义之前,我可以工作的最大后台线程数是多少?

平台是C#,框架是Mono,目标操作系统是CentOS,RAM是2.4G,服务器在云上,我期望每秒大约200个连接请求。

最佳答案

不,每个连接不应有一个线程。相反,您应该使用异步方法(BeginAccept/EndAccept,BeginSend/EndSend等)。这些将更有效地利用系统资源。

特别是,您创建的每个线程都会增加上下文切换,堆栈空间,缓存未命中等方面的开销。例如,Linux比Windows更擅长于管理这些内容,但这不应该成为让您自由创建任意数量的线程的借口;)

关于multithreading - 套接字服务器中每个客户端连接有新线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2505567/

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