我正在开发一款多人游戏,它有一个大厅,人们可以在那里加入不同的游戏。
我很好奇是否应该为每个游戏室启动一个线程。
我正在使用 java.io,因此我已经为每个玩家提供了一个线程。
即使每个线程上的负载不重,线程过多也会减慢我的服务器速度吗?
如果我托管一个可容纳 100 名玩家和 30 个房间的服务器,平均虚拟服务器可以同时处理 150 个线程吗?或者说会影响游戏性?
这是一个实时游戏,我需要为每个位置更新提供即时消息传送 (UDP)?
最佳答案
线程(如您所知)只是允许同时运行任务。拥有大量线程并不总是有助于或不利于服务器速度,这受到其他因素的限制,例如互联网速度或计算机的处理能力。另一边的人的游戏运行速度将与计算机处理所有请求的速度一样快,即使您有 10000 个线程,它们也都需要处理能力和通过互联网的连接。
简而言之,服务器和客户端的速度将受到使用您服务器的其他人的影响,速度将受到您的互联网连接速度和/或 CPU 功率的限制。强>
如果这没有回答您的问题,请更清楚地定义实际问题,而不是问很多一般性问题。
编辑: 阅读您的评论后,我的建议是:做您认为对服务器最有利的事情。拥有大量线程不会对您的服务器产生好或坏的影响。 :)
关于java - Java 服务器中每个游戏室的线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47382424/