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