提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
JAVA多线程:龟兔赛跑
提示:以下是本篇文章正文内容,下面案例可供参考
一、代码
```java
public class Race implements java.lang.Runnable {
static String winner=null;
@Override
public void run() {
for (int i = 0; i <=100; i++) {
if(gameOver(i)) {
break;
}
if(Thread.currentThread().getName().equals("兔子")&&i%10==0) {
try {
Thread.sleep(1);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
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;
}
else
return false;
}
}
public static void main(String[] args) {
Race race =new Race();
new Thread(race,"兔子").start();
new Thread(race,"乌龟").start();
}
}
# 总结
运用Runnable启动线程,执行龟兔赛跑程序
1.两个进程同时开始跑,距离终点越来越近(100)。
2.判断是否比赛结束(有一方到达终点)。
3.决出胜利者(到达终点的一方)。
4.兔子线程在中途需要休息