Java100-008:利用多執行緒實現龜兔賽跑
阿新 • • 發佈:2018-12-30
package java02; /** * 我的java每天100行程式碼008 * 利用多執行緒實現龜兔賽跑 * @author Administrator * */ public class java0082 { public static void main(String[] args) { //一場比賽 Racer r = new Racer(); //兩個代理(兔子,烏龜在跑) new Thread(r,"tortoise").start(); new Thread(r,"rabbit").start(); } } class Racer implements Runnable{ public static String winner; public void run(){ for(int steps=1;steps<=100;steps++) { //模擬休息 if(Thread.currentThread().getName().equals("rabbit")&&steps%10==0) { try { Thread.sleep(1); } catch (InterruptedException e) { e.printStackTrace(); } } System.out.println(Thread.currentThread().getName()+"-->"+steps); boolean flag = GameOver(steps); if(flag==true) { break; } } } public boolean GameOver(int steps) { if(winner!=null) { return true; }else { if(steps == 100) { winner = Thread.currentThread().getName(); System.out.println("winner-->"+winner); return true; } } return false; } }