package com.jjyy.thread;
/**
* 假如有三个线程T1,T2,T3,如何保证T2在T3之前执行完成,T1在T2之前完成?
* @author jiangyu 2015年9月7日
* 注意:线程的优先级无法保障线程的执行次序。只不过优先级高的线程获取 CPU 资源的概率大一点而已。
*/
public class JoinTest {
public static void main(String[] args) {
final Thread t1 = new Thread(new Runnable() {
@Override
public void run() {
System.out.println("thread1");
}
});
final Thread t2 = new Thread(new Runnable() {
@Override
public void run() {
try {
// 引用t1线程,等待t1线程执行完
t1.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("thread2");
}
});
Thread t3 = new Thread(new Runnable() {
@Override
public void run() {
try {
//引用t2线程,等待t2线程执行完
t2.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("thread3");
}
});
t3.start();
t2.start();
t1.start();
}
}
多个线程按顺序执行——join()
最新推荐文章于 2024-07-21 15:17:43 发布