1. 程式人生 > 其它 >多執行緒——龜兔賽跑問題

多執行緒——龜兔賽跑問題

技術標籤:java學習多執行緒java

龜兔賽跑
100米兩條執行緒 一個烏龜 一個兔子
如果是兔子的話設定延遲函式
當有一方勝出 馬上跳出迴圈 ==>比賽終止

package Lesson_Thread;

public class Race implements Runnable {
    private static String winner;
    @Override
    public void run() {   //開始跑步  100米
        for (int i = 0; i <=100; i++) {
            boolean flag = finish
(i); //接受”勝利者“返回的布林型別 一有勝利者 馬上跳出迴圈 if(flag){ break; } if(Thread.currentThread().getName()=="兔子" && i%50==0){ //兔子睡覺 try { Thread.sleep(1); } catch (InterruptedException e) { e.
printStackTrace(); } } System.out.println(Thread.currentThread().getName()+"跑了第"+i+"步"); } } public boolean finish(int step){ //判斷是否有勝利者 if(winner!=null){ //有且只有一個勝利者 return true; } if(
step>=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(); //在Thread中傳入Runable並呼叫start方法 new Thread(race,"烏龜").start(); } }