多线程龟兔赛跑
1.龟兔在同一赛道(thread对象使用同一runnable,runnabl就是两对象跑的赛道)
2.兔子喜欢睡觉
3.超过1000米就赢了 游戏结束gameOver
package thread.demo1;
public class Race implements Runnable {
private static String winner;
@Override
public void run() {
boolean flag;
for(int i=1;i<=1000;i++){
if(Thread.currentThread().getName().equals("兔子")&&i%5==0){
try {
System.out.println("兔子睡了");
Thread.sleep(1);
i+=5;
} catch (InterruptedException e) {
e.printStackTrace();
}
}
flag=gameOver(i);
if(flag){
break;
}
System.out.println(Thread.currentThread().getName()+"跑了"+i+"米");
}
}
public boolean gameOver(int dist){
if(winner!=null){
return true;
}else{
if(dist>=1000){
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();
}
}