在java中处理大量独立计时任务的最佳方法?

在java中处理大量独立计时任务的最佳方法?,java,Java,我正在开发一个以java为后端的小型多人浏览器游戏。玩家可以创建自己的游戏室,并让其他玩家加入 每个游戏室都需要执行一些预定的任务,我不确定为了保持游戏在大范围内顺利运行,最好的方式是什么 不涉及太多细节的概念是,当新一轮在游戏室开始时,列表中的下一位玩家将键入一个问题,然后其他玩家在新一轮开始前有30秒时间回答该问题 所以我的问题是,我不知道我应该怎么做才能有单独的任务,比如检查问问题的玩家是否处于非活动状态,如果在15秒左右没有输入问题,应该跳过,30秒后开始新一轮等等 我最初打算为每个游戏

我正在开发一个以java为后端的小型多人浏览器游戏。玩家可以创建自己的游戏室,并让其他玩家加入

每个游戏室都需要执行一些预定的任务,我不确定为了保持游戏在大范围内顺利运行,最好的方式是什么

不涉及太多细节的概念是,当新一轮在游戏室开始时,列表中的下一位玩家将键入一个问题,然后其他玩家在新一轮开始前有30秒时间回答该问题

所以我的问题是,我不知道我应该怎么做才能有单独的任务,比如检查问问题的玩家是否处于非活动状态,如果在15秒左右没有输入问题,应该跳过,30秒后开始新一轮等等

我最初打算为每个游戏室创建一个单独的线程,但意识到这可能不是很聪明。另一个想法是每秒运行一个主游戏循环,检查所有游戏室并以这种方式执行任务,但我认为如果创建了太多游戏室,那么最终循环会太多

如上所述,在多个游戏室中处理定时事件而不出现性能问题的最佳方法是什么

编辑


所有游戏室最好都有一个循环,还是每个游戏室都有一个带有自己循环的线程?

如果你的游戏循环只是检查不活动,它可能可以处理数百万个游戏室

否则我想你应该看看。Java有很好的方法将单个任务均匀地分配到CPU核上


在一篇文章中教授所有并发功能是不可能的。你需要自己学习

除了检查非活动用户外,还需要检查房间里的所有玩家是否都回答了问题,并每隔30秒用一个新问题开始新一轮。如果一个循环每1秒迭代一次就可以大规模地处理这个问题,那么我的生活就会变得非常轻松。然而,我不确定这是否比每个房间都有单独的任务更可取。谢谢你的回答,我会仔细阅读的。