1 龟兔赛跑的故事情节
点击视频链接龟兔赛跑
1.首先来个赛道距离,然后要离终点越来越近
2.判断比赛是否结束
3.打印出冠军获得者
4.乌龟和兔子赛跑开始
5.龟兔赛跑的故事中讲述兔子需要睡觉,所以模拟兔子睡觉
6.最终乌龟赢得比赛
2 实现说明
实现Runnable接口,重写run()方法,执行线程传入Runnable接口实现类的对象,调用start()方法。
3 实例代码
package com.m.demo04;
//模拟龟兔赛跑
public class Run_race implements Runnable{
// 冠军
private String champion;
// 子线程,重写run()方法
@Override
public void run() {
// 龟和兔子跑步的过程中显示的步数
for (int i = 0;i<= 100;i++ ){
// 模拟兔子在中途中睡觉
if (Thread.currentThread().getName().equals("兔子") && i==50){
try {
// 假设兔子在中途时睡了100毫秒
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
boolean flag = gameResult(i);
// 返回真值时,就跳出for循环
if(flag){
break;
}
System.out.println(Thread.currentThread().getName()+"跑了"+i+"步");
}
}
// 判断是否存在冠军
private boolean gameResult(int stepNum) {
// 冠军不为空时,返回true
if (champion != null) {
return true;
}else{
// 龟或者兔子跑的步数达到>=100时,最终成为冠军获得者
if (stepNum >= 100) {
champion = Thread.currentThread().getName();
System.out.println(champion + "是冠军获得者");
return true;
}
}
return false;
}
// 主线程
public static void main(String[] args) {
// 创建Runnable接口的实现类对象
Run_race race = new Run_race();
// 启动线程
new Thread(race,"兔子").start();
new Thread(race,"乌龟").start();
}
}