需求:有三个线程A\B\C,A输出“a”,B输出“b”,C输出“c”。同时启动,输出10次“abc”。
代码实现:
package test2057;
import java.util.Timer;
import java.util.TimerTask;
public class Thread20180320 {
public static void main(String[] args) {
Thread a = new Thread(new Runnable(){
@Override
public void run() {
TimerTask task;
Timer timer;
long delay;
for(int i = 0; i < 10; i++) {
task = new TimerTask() {
@Override
public void run() {
System.out.print("a");
}
};
timer = new Timer();
delay = 3000 * i;
timer.schedule(task, delay);
}
}
});
Thread b = new Thread(new Runnable(){
@Override
public void run() {
try {
a.join();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
TimerTask task;
Timer timer;
long delay;
for(int i = 0; i < 10; i++) {
task = new TimerTask() {
@Override
public void run() {
System.out.print("b");
}
};
timer = new Timer();
delay = 1000 + 3000 * i;
timer.schedule(task, delay);
}
}
});
Thread c = new Thread(new Runnable(){
@Override
public void run() {
try {
b.join();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
TimerTask task;
Timer timer;
long delay;
for(int i = 0; i < 10; i++) {
task = new TimerTask() {
@Override
public void run() {
System.out.println("c");
}
};
timer = new Timer();
delay = 2000 + 3000 * i;
timer.schedule(task, delay);
}
}
});
a.start();
b.start();
c.start();
}
}
运行结果:
abc
abc
abc
abc
abc
abc
abc
abc
abc
abc