1. 程式人生 > 其它 >多執行緒07:龜兔賽跑

多執行緒07:龜兔賽跑

多執行緒07:龜兔賽跑

package com.HuoLong.demo01;

//模擬龜兔賽跑
public class Race implements Runnable {

   //勝利者
   private static String winner;//
   @Override
   public void run() {
       for (int i = 0; i <= 100; i++) {

           //模擬兔子休息
           if (Thread.currentThread().getName().equals("兔子")&& i%10==0){
               try {
                   Thread.sleep(10);
              } catch (InterruptedException e) {
                   e.printStackTrace();
              }
          }
           //判斷比賽是否結束
           boolean flag=gameOver(i);
           //如果比賽結束了,就停止程式
           if (flag){
               break;
          }
           System.out.println(Thread.currentThread().getName()+"-->跑了"+i+"步");
      }
  }

   //判斷是否完成比賽
   private boolean gameOver(int steps){
       //判斷是否有勝利者
       if (winner!=null){//已經存在勝利者了
           return true;
      }{
           if (steps==100){
               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();
  }
}
 

搜尋

複製