public class RaceTest implements Runnable {
// 创建一个胜利者
private static String winner;
@Override
public void run() {
for (int i = 1; i <= 100; i++) {
// 判断是否出现胜利者
boolean flag = this.isWinner(i);
if (flag) {
break;
}
// 当兔子跑的时候,需要睡觉
if("兔子".equals(Thread.currentThread().getName())&&i%10==22){
try {
Thread.sleep(2);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println(Thread.currentThread().getName() + "跑了" + i + "步");
}
}
private boolean isWinner(int step) {
// 判断是否存在胜利者
if (winner != null) {
return true;
}
// 当步数达到时,宣布胜利者
if (step >= 100) {
winner = Thread.currentThread().getName();
System.out.println(winner + "赢了");
return true;
}
return false;
}
public static void main(String[] args) {
RaceTest raceTest = new RaceTest();
new Thread(raceTest, "乌龟").start();
new Thread(raceTest, "兔子").start();
}
}

image.png
网友评论