Java Thread中, join() 方法主要是让调用改方法的thread完成run方法里面的东西后, 在执行join()方法后面的代码。示例:
class ThreadTesterA implements Runnable {
private int counter;
@Override
public void run() {
while (counter <= 10) {
System.out.print("Counter = " + counter + " ");
counter++;
}
System.out.println();
}
}
class ThreadTesterB implements Runnable {
private int i;
@Override
public void run() {
while (i <= 10) {
System.out.print("i = " + i + " ");
i++;
}
System.out.println();
}
}
public class ThreadTester {
public static void main(String[] args) throws InterruptedException {
Thread t1 = new Thread(new ThreadTesterA());
Thread t2 = new Thread(new ThreadTesterB());
t1.start();
t1.join(); // wait t1 to be finished
t2.start();
t2.join(); // in this program, this may be removed
}
}如果去掉t1.join()这个语句过后, 输出的书序是乱的, 加上这个语句过后, 就会按照顺序输出, 从某种意义上说实现了同步。
本文详细介绍了JavaThread中的join()方法如何实现线程间的同步。通过具体示例展示了join()方法的作用,即确保一个线程在另一个线程完成后才继续执行,从而避免了线程执行顺序混乱的问题。
273

被折叠的 条评论
为什么被折叠?



