我的密码

public class Main {

    public static void main(String[] args)throws Exception {
        Thread thread1=new Thread(new Runnable()
        {
            public void run()
            {
                System.out.println("Thread1");
            }
        });
        thread1.join();
        thread1.start();
        for (int i = 0; i < 1000; i++) {
            System.out.println(i);
        }
    }

}


有时甚至在打印所有数字之前就打印“ Thread1”。有什么理由吗? Thread1是否应该等待主线程完成?

最佳答案

    thread1.join();
    thread1.start()


做了

    thread1.start()
    thread1.join();


它将通过thread1.start()从主线程开始一个线程,并且主线程将在下一行继续执行,它将看到thread1.join();,这将暂停主线程的执行,直到thread1完成。这样您的工作就可以完成

07-28 14:22