多线程:龟兔赛跑的案例

 

package com.kuang.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+1)%10==0){
                try {
                    Thread.sleep(100);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
            //判断比赛是否结束
            boolean flag = gameOver(i);
            if(flag){
                break;
            }
            System.out.println(Thread.currentThread().getName()+"-->跑了"+i+"步");
        }
    }
    //   判断是否完成比赛
    public 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();

    }
}

G:\Java\bin\java.exe "-javaagent:G:\ideaj\IntelliJ IDEA 2021.3.3\lib\idea_rt.jar=49232:G:\ideaj\IntelliJ IDEA 2021.3.3\bin" -Dfile.encoding=UTF-8 -classpath G:\java\jre\lib\charsets.jar;G:\java\jre\lib\deploy.jar;G:\java\jre\lib\ext\access-bridge-64.jar;G:\java\jre\lib\ext\cldrdata.jar;G:\java\jre\lib\ext\dnsns.jar;G:\java\jre\lib\ext\jaccess.jar;G:\java\jre\lib\ext\jfxrt.jar;G:\java\jre\lib\ext\localedata.jar;G:\java\jre\lib\ext\nashorn.jar;G:\java\jre\lib\ext\sunec.jar;G:\java\jre\lib\ext\sunjce_provider.jar;G:\java\jre\lib\ext\sunmscapi.jar;G:\java\jre\lib\ext\sunpkcs11.jar;G:\java\jre\lib\ext\zipfs.jar;G:\java\jre\lib\javaws.jar;G:\java\jre\lib\jce.jar;G:\java\jre\lib\jfr.jar;G:\java\jre\lib\jfxswt.jar;G:\java\jre\lib\jsse.jar;G:\java\jre\lib\management-agent.jar;G:\java\jre\lib\plugin.jar;G:\java\jre\lib\resources.jar;G:\java\jre\lib\rt.jar;G:\jre\lib\ext\RXTXcomm.jar;F:\线程\Thead\out\production\Thead;F:\线程\Thead\src\lib\commons-io-1.3.2.jar com.kuang.Demo01.Race
兔子-->跑了0步
兔子-->跑了1步
兔子-->跑了2步
兔子-->跑了3步
兔子-->跑了4步
兔子-->跑了5步
兔子-->跑了6步
兔子-->跑了7步
兔子-->跑了8步
乌龟-->跑了0步
乌龟-->跑了1步
乌龟-->跑了2步
乌龟-->跑了3步
乌龟-->跑了4步
乌龟-->跑了5步
乌龟-->跑了6步
乌龟-->跑了7步
乌龟-->跑了8步
乌龟-->跑了9步
乌龟-->跑了10步
乌龟-->跑了11步
乌龟-->跑了12步
乌龟-->跑了13步
乌龟-->跑了14步
乌龟-->跑了15步
乌龟-->跑了16步
乌龟-->跑了17步
乌龟-->跑了18步
乌龟-->跑了19步
乌龟-->跑了20步
乌龟-->跑了21步
乌龟-->跑了22步
乌龟-->跑了23步
乌龟-->跑了24步
乌龟-->跑了25步
乌龟-->跑了26步
乌龟-->跑了27步
乌龟-->跑了28步
乌龟-->跑了29步
乌龟-->跑了30步
乌龟-->跑了31步
乌龟-->跑了32步
乌龟-->跑了33步
乌龟-->跑了34步
乌龟-->跑了35步
乌龟-->跑了36步
乌龟-->跑了37步
乌龟-->跑了38步
乌龟-->跑了39步
乌龟-->跑了40步
乌龟-->跑了41步
乌龟-->跑了42步
乌龟-->跑了43步
乌龟-->跑了44步
乌龟-->跑了45步
乌龟-->跑了46步
乌龟-->跑了47步
乌龟-->跑了48步
乌龟-->跑了49步
乌龟-->跑了50步
乌龟-->跑了51步
乌龟-->跑了52步
乌龟-->跑了53步
乌龟-->跑了54步
乌龟-->跑了55步
乌龟-->跑了56步
乌龟-->跑了57步
乌龟-->跑了58步
乌龟-->跑了59步
乌龟-->跑了60步
乌龟-->跑了61步
乌龟-->跑了62步
乌龟-->跑了63步
乌龟-->跑了64步
乌龟-->跑了65步
乌龟-->跑了66步
乌龟-->跑了67步
乌龟-->跑了68步
乌龟-->跑了69步
乌龟-->跑了70步
乌龟-->跑了71步
乌龟-->跑了72步
乌龟-->跑了73步
乌龟-->跑了74步
乌龟-->跑了75步
乌龟-->跑了76步
乌龟-->跑了77步
乌龟-->跑了78步
乌龟-->跑了79步
乌龟-->跑了80步
乌龟-->跑了81步
乌龟-->跑了82步
乌龟-->跑了83步
乌龟-->跑了84步
乌龟-->跑了85步
乌龟-->跑了86步
乌龟-->跑了87步
乌龟-->跑了88步
乌龟-->跑了89步
乌龟-->跑了90步
乌龟-->跑了91步
乌龟-->跑了92步
乌龟-->跑了93步
乌龟-->跑了94步
乌龟-->跑了95步
乌龟-->跑了96步
乌龟-->跑了97步
乌龟-->跑了98步
乌龟-->跑了99步
Winner is乌龟

Process finished with exit code 0
 

你可能感兴趣的:(多线程,java,开发语言)