需求描述:现在有T1,T2,T3三个线程,你怎么样保证T2在T1执行完毕后执行,T2在T3执行完后执行
Demo如下(这里要注意的是在调用匿名内部类的时候在调用要用final修饰)
package com.zuojie;
/**
* xu
*
* @author zuojie
*
*/
public class ThreadDemo07 {
public static void main(String[] args) {
final Thread t1 = new Thread(new Runnable() {
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println("T1,i:" + i);
}
}
});
t1.start();
final Thread t2 = new Thread(new Runnable() {
public void run() {
try {
t1.join();
} catch (Exception e) {
// TODO: handle exception
}
for (int i = 0; i < 20; i++) {
try {
Thread.sleep(30);
} catch (Exception e) {
// TODO: handle exception
}
System.out.println("T2,i:" + i);
}
}
});
t2.start();
Thread t3 = new Thread(new Runnable() {
public void run() {
try {
t2.join();
} catch (Exception e) {
// TODO: handle exception
}
for (int i = 0; i < 20; i++) {
try {
Thread.sleep(30);
} catch (Exception e) {
// TODO: handle exception
}
System.out.println("T3,i:" + i);
}
}
});
t3.start();
}
}
运行结果如下