要求:
(1)首先确定赛道长度,要离终点越来越近
(2)判断比赛是否结束
(3)打印出胜利者
(4)龟兔赛跑开始
(5)模拟兔子睡觉
(6)乌龟赢得比赛
代码如下:
package com.test;
/**
* 多线程模拟龟兔赛跑
* @author Pan
*/
public class Race implements Runnable{
//胜利者
private static String winner;
@Override
public void run() {
for (int i = 0; i <= 100; i++) {
//模拟兔子睡觉
if (Thread.currentThread().getName().equals("兔子") && i%10==0){
try {
Thread.sleep(5);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
//判断结束
boolean flag = Winner(i);
if (flag){
break;
}
System.out.println(Thread.currentThread().getName() + "跑了----->" + i + "米");
}
}
//判断胜利者
private boolean Winner(int steps){
if (winner!=null){
return true;
}if (steps>=100){
winner = Thread.currentThread().getName();
System.out.println("胜利者:"+winner);
return true;
}
return false;
}
public static void main(String[] args) {
Race race = new Race();
new Thread(race,"兔子").start();
new Thread(race,"乌龟").start();
}
}