多次运行一个线程

时间:2012-08-13 02:06:56

标签: java multithreading

我有一个运行我的游戏循环的线程。我希望每次开始新游戏时都能运行这个游戏循环。但由于Java中的线程只能启动一次,我该怎么做呢?

4 个答案:

答案 0 :(得分:3)

在同一个Thread实例周围创建一个新的Runnable并启动它。

答案 1 :(得分:2)

由于您希望运行游戏循环的线程继续运行它,因此您需要对其进行编码:

  public class GameLoop implements Runnable {
      ...
      public void run() {
         while (gameNotFinished) {
            // do stuff
         }
      }
  }

如果这不起作用,那么run()方法很可能会因为你没有捕获/记录而没有注意到而导致死亡。

答案 2 :(得分:2)

1。当您说"you need to run a thread"时,我的意思是您希望在单独的主题上启动子任务。

2. 现在,如果您的意思是某个子任务,那么请更喜欢运行 new thread

3。正如您所说But since the threads in Java can only be started once

这意味着当thread (thread of execution) 完成其 run()方法时,与之关联的Thread对象会永久地丢失其线程,对......

但如果此线程来自池 ,则池本身将管理Thread对象及其重用。尝试使用Executors包中的java.util.concurrent

答案 3 :(得分:0)

1)简短的回答正是SLaks已经说过的:只是“......在同一个可运行的实例周围创建一个新线程并启动它。”

2)我认为你可能会对“start”的日常含义与Java Thread方法“start()”的语义之间的区别感到困惑。本教程可能有所帮助:

3)如果您希望重新使用相同的线程,可以使用方法“wait()”和“resume()”: