Java“Fire and Forget”线程

时间:2011-12-09 12:10:26

标签: java multithreading fire-and-forget

我有一个方法

public static void startAnimation() {
    new AnimationThread().run();
}

其中AnimationThread实现runnable,其构造函数为:

public AnimationThread() {
    new Thread(this, "Animation Thread");
    EventQueue.setAnimationCounter(0);
    alive = true;
}
我从applet的init()方法调用的

挂起,因为它永远不会返回值。有没有办法启动这个线程并完成init()方法,以便我的applet启动!

由于

2 个答案:

答案 0 :(得分:4)

你需要稍微改变一下:

public AnimationThread() {
   EventQueue.setAnimationCounter(0);
   alive = true;
   new Thread(this, "Animation Thread").start();
}

public static void startAnimation() {
   new AnimationThread();
}

start()是在不同线程上运行代码的神奇Thread方法; AnimationThread构造函数在调用后将正常返回,AnimationThread.run()将在新线程中执行。

答案 1 :(得分:2)

也许您应该使用start方法而不是run方法。只有start方法才真正执行新线程。