描述:此时有两个线程 一个线程A 一个线程B,A线程调用了B的join方法
作用:A等待B线程执行完毕之后(释放我的CPU执行权),再继续执行。
线程正常执行的顺序
package com.zuojie;
/**
* 线程中join的用法
*
* @author zuojie
*
*/
public class ThreadDemo06 {
public static void main(String[] args) {
Thread thread = new Thread(new Runnable() {
public void run() {
for (int i = 0; i < 30; i++) {
System.out.println("子线程,i" + i);
}
}
});
thread.start();
// 主线程让子线程先执行完毕 怎么做?
for (int i = 0; i < 30; i++) {
System.out.println("主线程,i" + i);
}
}
}
执行结果
这里 我们会有一个疑问 咦 为什么线程总是交替执行 怎么让其中一个线程优先执行?
package com.zuojie;
/**
* 线程中join的用法
*
* @author zuojie
*
*/
public class ThreadDemo06 {
public static void main(String[] args) {
Thread thread = new Thread(new Runnable() {
public void run() {
for (int i = 0; i < 30; i++) {
System.out.println("子线程,i" + i);
}
}
});
thread.start();
// 主线程让子线程先执行完毕 怎么做?
try {
thread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
for (int i = 0; i < 30; i++) {
System.out.println("主线程,i" + i);
}
}
}
运行结果