我有一个状态机,许多线程使用它来管理游戏的状态。如果发生某些事情并且游戏实例由于任何原因没有改变状态,我需要能够清理线程。
我怎么能这样做,我有状态机?
如果我正确地理解了你,你的意思是终止给定事件的线程并检查状态是否没有改变。你可以通过多种方式做到这一点。让我建议你一个可能的解决方案。
1 - 终止线程的一种简单方法是将这些线程放在列表、数组等中,以识别要终止的线程。
2 - 创建一个终止TheadList(...) 的方法。
3 - 要终止它们,一种方法是使用 java.lang.Thread .interrupt() 方法。遍历您的线程列表、数组等。并中断()他们。然后一旦你得到异常允许线程终止。(也就是说,不要捕获这个异常并循环)。
4 - 检查游戏实例是否创建一个新线程(该线程不应在您的线程终止列表中),检查该实例游戏并放置上次更改的时间。又睡了又退房。如果实例没有更改,请再次调用您的 terminateThreadList 方法。
我希望这有帮助