package com.cheng.thread;public class Race implements Runnable { private static String winner;//获胜者 @Override//重写run方法 public void run() { //模拟兔子休息 if (Thread.currentThread().getName().equals("兔子")){//模拟兔子休息 try { Thread.sleep(10);//休息时间10ms } catch (InterruptedException e) { e.printStackTrace(); } } for (int i = 0; i <= 100 ; i++) {//跑100步就赢了 boolean flag = gameOver(i);//传参到gameOver判断比赛是否结束 if (flag){ break;//为真就结束了 } System.out.println(Thread.currentThread().getName()+"跑了"+i+"步"); } } private boolean gameOver(int steps){ //判断是否有胜利者 if (winner!=null){ return true; }else if(steps==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(); }}