【发布时间】:2019-03-27 04:43:55
【问题描述】:
对于 100,000 个用户群和每个游戏会话 4 个用户,我们是否应该为每个请求创建新线程,例如 create_session、move_player、use_attack 等?
我想知道处理大型连接的最佳方式是什么,因为如果我们创建大量线程,上下文切换会占用大部分周期,如果没有创建线程,每个请求都必须等待上一个请求完成。
【问题讨论】:
-
现代 Windows VM 可以轻松处理 10k“IO-idle”线程。无论如何:通常,“否”但“这取决于”许多因素,包括如何完成扩展和管理连接。大多数语言还具有通过线程池将 M 个“任务”多路复用到 N 个硬件线程的方法。许多线程的“更大”问题是适当的同步:将任务汇集到特定游戏(即单个游戏可能在离散线程上运行)可能是一个很好的“第一步”..
-
无论如何,因为没有足够的上下文而关闭。
标签: multithreading performance session server-side large-data