public class relay implements Runnable {
private int meters = 300;// 假设赛道三百米,每人一百
@Override
public void run() {
// TODO Auto-generated method stub
while (true) {
if (meters <= 100)
break;
go();
return;
}
}
public synchronized void go() {
System.out.println(Thread.currentThread().getName() + "拿到接力棒");
for (int i = 10; i <= 100; i += 10) { //每个线程循环10次,一次10米
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + "跑了" + i + "米");
}
}
public static void main(String[] args) {
relay in = new relay();
new Thread(in, "罗致焕").start();
new Thread(in, "景海鹏").start();
new Thread(in, "叶培建").start();
}
}
结果:
景海鹏拿到接力棒
景海鹏跑了10米
景海鹏跑了20米
景海鹏跑了30米
景海鹏跑了40米
景海鹏跑了50米
景海鹏跑了60米
景海鹏跑了70米
景海鹏跑了80米
景海鹏跑了90米
景海鹏跑了100米
叶培建拿到接力棒
叶培建跑了10米
叶培建跑了20米
叶培建跑了30米
叶培建跑了40米
叶培建跑了50米
叶培建跑了60米
叶培建跑了70米
叶培建跑了80米
叶培建跑了90米
叶培建跑了100米
罗致焕拿到接力棒
罗致焕跑了10米
罗致焕跑了20米
罗致焕跑了30米
罗致焕跑了40米
罗致焕跑了50米
罗致焕跑了60米
罗致焕跑了70米
罗致焕跑了80米
罗致焕跑了90米
罗致焕跑了100米