我有一个日志记录代码,在执行所有Threads之后需要执行该代码。

Thread t1 = new MyThread();
Thread t2 = new MyThread();
t1.run();
t2.run();

doLogging();

只有在两个线程都完成处理后,才可以执行doLogging()吗?现在,一旦启动t1和t2,就会调用doLogging()

最佳答案

只需在您的join()调用之前 doLogging() 所有线程:

t1.join();
t2.join();

// the following line will be executed when both threads are done
doLogging();

请注意,如果要等待所有线程,则join()调用的顺序无关紧要。

07-27 17:44