thread.Join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程。比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B。
package com.wzs; /** * Java多线程中join用法 * * @author Administrator * */ public class JoinTest { public static void main(String[] args) { BThread bThread = new BThread("-BThread-"); AThread aThread = new AThread(bThread, "-AThread-"); bThread.start(); aThread.start(); } } class AThread extends Thread { BThread bThread; public AThread(BThread bThread, String str) { super(str); this.bThread = bThread; } @Override public void run() { for (int i = 0; i < 5; i++) { System.out.println(Thread.currentThread().getName() + " : " + i); try { bThread.join(); } catch (InterruptedException e) { e.printStackTrace(); } } } } class BThread extends Thread { public BThread(String str) { super(str); } @Override public void run() { for (int i = 0; i < 5; i++) { System.out.println(Thread.currentThread().getName() + " : " + i); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } }
输出结果:
-BThread- : 0 -AThread- : 0 -BThread- : 1 -BThread- : 2 -BThread- : 3 -BThread- : 4 -AThread- : 1 -AThread- : 2 -AThread- : 3 -AThread- : 4