需求
让多个线程按照顺序执行
有人说,直接按照顺序调用start方法不就好了吗,来看看案例
public static void main(String[] args) throws Exception {
Thread t1= new Thread() {
@Override
public void run() {
System.out.println("我是第一个");
}
};
Thread t2= new Thread() {
@Override
public void run() {
System.out.println("我是第2个");
}
};
Thread t3= new Thread() {
@Override
public void run() {
System.out.println("我是第3个");
}
};
t1.start();
t2.start();
t3.start();
}
效果如下
image.png
多次运行,会有不同的结果,因为调用线程的start方法,并不是马上启动run方法,而是进入就绪状态,由系统内部的调度方法来调用,所以运行结果不唯一
所以要使用join方法
t1.start();
t1.join();
t2.start();
t2.join();
t3.start();
image.png
所以,让线程顺序执行,就是用join方法
码云:https://gitee.com/zhangqiye/Thread
QQ群:552113611
网友评论