题目要求:
多人参加1000米接力跑。每人跑100米,换下一个选手。要求每跑10米显示信息。
public class RunTest implements Runnable{
boolean flag;
int lengthTotal = 300;
@Override
public void run() {
while (lengthTotal > 0) {
relay();
break;
}
}
public synchronized void relay(){
System.out.println(Thread.currentThread().getName() + "获得了接力棒");
int length = 0;
for (int i = 0; i < 10; i++) {
length += 10;
lengthTotal -= 10;
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + "跑了" + length + "米,"+ "还剩" + lengthTotal + "米");
}
System.out.println(Thread.currentThread().getName() + "完成了接力赛");
if(lengthTotal == 0){
System.out.println("接力已完成");
}
}
}
下面开始进行测试:
public class Test {
public static void main(String[] args) {
RunTest run = new RunTest();
Thread runner1 = new Thread(run, "1号选手");
Thread runner2 = new Thread(run, "2号选手");
Thread runner3 = new Thread(run, "3号选手");
runner1.start();
runner2.start();
runner3.start();
}
}
测试结果: