有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

多线程Java“启动并忘记”线程

我有办法

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

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

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

我从applet的init()方法调用它时,它会挂起,因为它从不返回值。有没有办法启动这个线程并让init()方法完成,这样我的小程序就可以启动了

谢谢


共 (2) 个答案

  1. # 1 楼答案

    你需要移动一些东西:

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

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

  2. # 2 楼答案

    也许你应该调用start方法,而不是run方法。只有start方法真正执行新线程