线程模拟龟兔赛跑

线程模拟龟兔赛跑


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();

  }
}

 

posted @ 2021-07-08 16:45  Dudo1  阅读(236)  评论(0)    收藏  举报