zoukankan      html  css  js  c++  java
  • [Java]多线程,龟兔赛跑

    用多线程模拟龟兔赛跑

    package Thread;
    
    /**
     * 多线程模拟龟兔赛跑
     *
     * @author ZhaoLu cang on 2021/4/10 0010
     */
    public class Race implements Runnable{
    
        //胜利者变量
        private String winner;
    
        @Override
        public void run() {
            for(int i=0;i<=100;i++){
    
                //兔子睡觉,线程名为兔子且每20m睡觉一次
                if(Thread.currentThread().getName().equals("兔子") && i%20==0){
                    try {
                        //睡1ms
                        Thread.sleep(1);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
    
                //判断比赛是否结束
                boolean flag=gameOver(i);
                if(flag){
                    break;
                }
                System.out.println(Thread.currentThread().getName()+"已经跑了"+i+"米");
            }
        }
    
        //判断是否完成比赛
        public boolean gameOver(int meters){
            //判断是否有胜利者
            if(winner!=null){//表明存在胜利者
                return true;
            }else {
                //跑完一百米则输出胜利者
                if(meters==100){
                    winner=Thread.currentThread().getName();
                    System.out.println("胜利者是"+winner);
                    return true;
                }
            }
            return false;
        }
    
        public static void main(String[] args) {
            Race race=new Race();
            new Thread(race,"兔子").start();
            new Thread(race,"乌龟").start();
        }
    }
    View Code

  • 相关阅读:
    文件同步工具
    截图工具
    DBF文件工具
    Oracle旗下的开源虚拟机
    远程协助工具
    切换网络IP工具
    MySQL(C#的链接姿势)
    大写URL转小写
    一个textview实现文字在图片上面的效果
    通过代码设置textview颜色
  • 原文地址:https://www.cnblogs.com/zlc364624/p/14641602.html
Copyright © 2011-2022 走看看