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

    package Thread;
    
    //模拟龟兔赛跑
    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;
                }
                //Thread.currentThread().getName():获取线程名
                System.out.println(Thread.currentThread().getName()+"-->跑了"+i+"步");
            }
        }
    
        //判断是否完成比赛
        private boolean gameOver(int steps){
            //判断是否有胜利者
            if (winner!=null){//已经有胜利者了
                return true;
            }else {
                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();
        }
    }
    

      在这里,由于我们人为的设定了兔子睡眠,所以最后赢的一定是乌龟;

  • 相关阅读:
    字符串基本操作
    条件、循环、函数定义 练习
    turtle库基础练习
    Python基础练习
    AutoLayout 教程
    Mac上最佳的SVN管理工具:Cornerstone
    图片上传 关于压缩的问题
    关于单元测试的问题
    获取ios设备的当前IP地址
    关于项目使用ARC的管理方式
  • 原文地址:https://www.cnblogs.com/xie-qi/p/14106128.html
Copyright © 2011-2022 走看看