zoukankan      html  css  js  c++  java
  • java多线程 模拟 龟兔赛跑

    编写代码

    package com.xiang.lesson05;
    
    //模拟 龟兔赛跑
    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();
        }
    }
    
    

    运行结果

    乌龟-->跑了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
    
  • 相关阅读:
    webbrowser在vb中叫
    linux小记之安装bin或deb程序
    9011,9012,9013,9014,8050,8550三极管的区别
    中兴v880刷机全过程。原创亲测
    Slackware的启动(init)过程
    sysvinit
    rc.S 分析【转自CSDN 】
    linux 解压rar zip
    slackware启动脚本详解
    工作
  • 原文地址:https://www.cnblogs.com/d534/p/15239792.html
Copyright © 2011-2022 走看看