所以我正在为我正在制作的游戏制作一个Java服务器,我想知道为每个玩家创建一个线程是否有点过分,考虑到服务器可能会同时在线吸引大量用户
多少线程是多少?,我应该为每场比赛制作1个线程(它是大厅类型的游戏,你选择一个匹配并输入)或每个玩家1个线程好吗?
答案 0 :(得分:2)
这个soley取决于您的应用程序架构。在得出结论之前,我们需要了解一些事情。
因此,最好让ThreadPool和线程池中有固定的nof个线程。比如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)
。
上述两件事都会为您提供强大的系统。对不起,如果您觉得我无法正确回答您的问题。
编辑:我正在按照以下查询回答。
no of threads = 2 * no_of_cores * no_of_disks * percentage CPU utilization you need * (1 + (W/ C))
(W / C)是表示计算时间的等待时间的分数。
答案 1 :(得分:0)
我为每个玩家在我的游戏中制作了线程,并且在同一时间内有20到30个线程并且没有lagg。所以对于我认为的每个球员。
答案 2 :(得分:0)
如果您询问在关闭系统之前可以创建多少个线程, 它可能是几千个线程,它取决于您的操作系统以及每个线程需要多少内存。
我们无法为您做出这样的设计选择,因为我们不知道每个线程的作用,但是如果每个游戏使用一个线程计数,并且优化是否符合您的目的(系统所需的可扩展性?商业或作业?),我会尽可能减少线程。