我正在制作一个回合制多人游戏,可以循环使用。基本上,一个玩家主持一场比赛,另一个人加入比赛,然后比赛就开始了。我的服务器将需要处理这些匹配并每 5 秒向客户端提供更新。我通常会使用计时器/thread.sleep() 来执行此操作。我的问题是我不确定如何同时为多个比赛执行此操作。我觉得每场比赛使用一个线程会很荒谬,因为它会闲置而不是做任何事情。
我的一个想法是只有一个线程以 5 秒的间隔更新每场比赛。我觉得唯一的问题是,当很多比赛同时进行时,最后更新的游戏可能会出现相当大的延迟。(我不知道这有多重要,因为我的游戏是基于时间的,但它看起来很原始)。
我的另一个选择是使用看起来很有希望的 ScheduledExecutorService(线程池)。
我是否会因为我还在为套接字连接运行线程池而遇到 ScheduledExecutorService 线程池的问题?
2.有没有更好的方法来完成我想要实现的目标?
只是为了澄清我正在寻找一种方法,基本上每场比赛每 5 秒调用一次函数。例如:
我的游戏从 0 开始,而你的游戏从 2 秒开始。服务器会调用更新函数:
对我来说:0,5,10,15,20,25 等...
为您:2,7,12,17,22,27 等...