0
点赞
收藏
分享

微信扫一扫

多线程:龟兔赛跑

司马吹风 2022-02-13 阅读 136
javathread
package com.wuming.demo01;

public class Race implements Runnable{
    /**
     * When an object implementing interface <code>Runnable</code> is used
     * to create a thread, starting the thread causes the object's
     * <code>run</code> method to be called in that separately executing
     * thread.
     * <p>
     * The general contract of the method <code>run</code> is that it may
     * take any action whatsoever.
     *
     * @see Thread#run()
     */
    //胜利者
    private static String winner;
    @Override
    public void run() {
        for (int i = 0; i <=100; i++) {
            //模拟兔子休息
            if (Thread.currentThread().getName().equals("兔子")&& i%20==0){
                try {
                    Thread.sleep(1);
                } 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();
    }
}

乌龟-->跑了0步
乌龟-->跑了1步
乌龟-->跑了2步
乌龟-->跑了3步
乌龟-->跑了4步
乌龟-->跑了5步
乌龟-->跑了6步
乌龟-->跑了7步
乌龟-->跑了8步
乌龟-->跑了9步
乌龟-->跑了10步
乌龟-->跑了11步
乌龟-->跑了12步
乌龟-->跑了13步
乌龟-->跑了14步
乌龟-->跑了15步
乌龟-->跑了16步
乌龟-->跑了17步
乌龟-->跑了18步
乌龟-->跑了19步
乌龟-->跑了20步
乌龟-->跑了21步
乌龟-->跑了22步
兔子-->跑了0步
乌龟-->跑了23步
兔子-->跑了1步
乌龟-->跑了24步
兔子-->跑了2步
乌龟-->跑了25步
兔子-->跑了3步
乌龟-->跑了26步
兔子-->跑了4步
乌龟-->跑了27步
兔子-->跑了5步
乌龟-->跑了28步
兔子-->跑了6步
乌龟-->跑了29步
兔子-->跑了7步
乌龟-->跑了30步
兔子-->跑了8步
乌龟-->跑了31步
兔子-->跑了9步
乌龟-->跑了32步
兔子-->跑了10步
乌龟-->跑了33步
兔子-->跑了11步
乌龟-->跑了34步
兔子-->跑了12步
乌龟-->跑了35步
兔子-->跑了13步
乌龟-->跑了36步
兔子-->跑了14步
乌龟-->跑了37步
兔子-->跑了15步
乌龟-->跑了38步
兔子-->跑了16步
乌龟-->跑了39步
兔子-->跑了17步
乌龟-->跑了40步
兔子-->跑了18步
乌龟-->跑了41步
兔子-->跑了19步
乌龟-->跑了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步
兔子-->跑了20步
乌龟-->跑了83步
兔子-->跑了21步
乌龟-->跑了84步
兔子-->跑了22步
乌龟-->跑了85步
兔子-->跑了23步
乌龟-->跑了86步
兔子-->跑了24步
乌龟-->跑了87步
乌龟-->跑了88步
乌龟-->跑了89步
乌龟-->跑了90步
乌龟-->跑了91步
乌龟-->跑了92步
乌龟-->跑了93步
乌龟-->跑了94步
乌龟-->跑了95步
乌龟-->跑了96步
乌龟-->跑了97步
乌龟-->跑了98步
乌龟-->跑了99步
winner is乌龟
兔子-->跑了25步

举报

相关推荐

0 条评论