清理停止的线程

时间:2012-10-29 10:46:02

标签: java spring state

我有一个状态机,许多线程使用它来管理游戏的状态。如果发生了某些事情,我需要能够清理线程,并且游戏实例无论出于何种原因都不会改变状态。

我怎么能这样做,我有状态机?

1 个答案:

答案 0 :(得分:0)

如果我正确接受你,你的意思是在给定事件的情况下终止线程并检查状态是否没有改变。你可以通过多种方式实现这一目标。我建议你一个可能的解决方案。

1 - 终止线程的一种简单方法是将这些线程放在列表,数组等中,以便识别要终止的线程。

2 - 创建一个terminateTheadList(...)的方法。

3 - 要终止它们,一种方法是使用java.lang.Thread .interrupt()方法。迭代你的线程列表,数组等。并打断他们。然后一旦你得到异常允许线程终止。(也就是说,不要捕获这个异常并循环)。

4 - 检查游戏实例是否创建了一个新线程(这个不应该在你的线程终止列表中),检查该实例游戏并将最后一次更改。睡觉并再次退房。如果实例没有改变,请再次调用terminateThreadList方法。

我希望这会有所帮助