抽象分析
1.首先来个赛道距离,然后要离终点越来越近
2.判断比赛是否结束
3.打印出胜利者
4.龟兔赛跑开始
5.龟兔赛跑中最终乌龟赢得比赛,兔子需要睡觉,用延时来模拟兔子睡觉
6.最后乌龟赢得比赛胜利
代码实例
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){//兔子每十步延时10ms
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
//判断比赛是否结束
boolean flag=gameover(i);
if (flag){
break;
}
System.out.println(Thread.currentThread().getName()+"-->跑了"+i+"步");//打印步数
}
}
//判断比赛是否完成
private boolean gameover(int step){
//判断是否有胜利者
if (winner!=null){//已经存在胜利者
return true;
}else if (step>=100){
winner=Thread.currentThread().getName();
System.out.println("Winner is "+winner);
return true;
}
return false;
}
public static void main(String[] args) {
Race race=new Race();
new Thread(race,"兔子").start();
new Thread(race,"乌龟").start();
}
}
结果展示
![](https://i-blog.csdnimg.cn/blog_migrate/c204c04c721f6639f1cac2c8fa11a244.png)
备注:资料参考均来自B站up:遇见狂神说