thread.join() 的用法

来源:互联网 发布:2018mpacc知乎 编辑:程序博客网 时间:2024/04/30 22:46

java Thread中, join() 方法是让调用该方法的主线程执行run()时暂时卡住,等run()执行完成后, 主线程再调用执行join()后面的代码。示例:

class ThreadTesterA implements Runnable {private int counter;@Overridepublic void run() {while (counter <= 10) {System.out.print("Counter = " + counter + " ");counter++;}System.out.println();}}class ThreadTesterB implements Runnable {private int i;@Overridepublic 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 finishedt2.start();t2.join(); // in this program, this may be removed}}如果去掉t1.join()这个语句过后, 输出的顺序是乱的, 加上这个语句后, 就会按照顺序输出,  从某种意义上说实现了同步。


0 0
原创粉丝点击