gpt4 book ai didi

java - Java 中的线程最大数量?

转载 作者:行者123 更新时间:2023-12-02 06:54:48 26 4
gpt4 key购买 nike

因此,我正在为我正在制作的游戏制作一个 Java 服务器,我想知道为每个玩家创建一个线程是否有点过大,因为服务器可能会同时容纳大量人员在线.

多少个线程是多少?,我应该为每个游戏制作 1 个线程(这是大厅类型的游戏,您选择一场比赛并进入)还是每个玩家 1 个线程好?

最佳答案

这仅取决于您的应用程序架构。在得出结论之前,我们需要了解一些事情。

  1. 如果您为每个请求创建无限个线程,那么您的应用程序将遭受资源过度利用的问题,并且可能会出现内存不足错误或 CPU 过度利用
  2. 如果您创建的线程数量非常少,那么您的应用程序的活跃度将会受到影响
  3. 如果我们动态创建一个线程,它也需要大量的资源

所以最好有线程池,并且线程池中应该有固定的线程数。喜欢 Executors.newFixedThreadPool(NO_OF_THREADS);

同时,我们的武器库中应该有拒绝政策,其中一些是例如Silent discard, discard with an exception, caller runner (back push so that it will slowdown request inflow the way normal networks work) and discard old (depends on your priority set)

以上两点将为您提供一个强大的系统。抱歉,如果您觉得我无法正确回答您的问题。

编辑:我按照以下查询回答。

  1. 您可以通过 jmeter 测试您的应用程序并查看应用程序的性能。您还可以通过组合一些工作站来使用 JMeter 进行一些分布式负载测试。它将为您提供真实的情况,以及您应该拥有什么线程来服务典型的工作负载。
  2. 有时像no of threads = 2 * no_of_cores * no_of_disks * percentage CPU utilization you need * (1 + (W/ C))这样的公式

(W/C) 是表示等待时间与计算时间的分数。

关于java - Java 中的线程最大数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17506738/

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