线程强制执行 Join
- Join 合并线程,待此线程执行完成后,再执行其他线程,其他线程阻塞
- 可以想象成插队
package com.Jinone.www;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TextJoin implements Runnable {
public static void main(String[] args) {
TextJoin join=new TextJoin();
Thread thtread=new Thread(join);
thtread.start();
for(int i=0;i<=500;i++) {
System.out.println("main "+i);
if(i==200) {
try {
thtread.join();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
@Override
public void run() {
// TODO Auto-generated method stub
for(int i=0;i<=1000;i++) {
System.out.println("多线程 "+i);
}
}
}
结果:当主线程与其他线程交叉执行,当主线程打印到"mian 200“时候,执行到thtread.join(),主线程就会进入阻塞状态,而其他线程继续执行,当其他线程结束了,主线程就进入就绪状态,等CPU再去调用主线程。