多线程(2)龟兔赛跑

使用多线程模拟龟兔赛跑

复制代码
package com.Thread.lesson01;


/**
 * 模拟龟兔赛跑
 */
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+"米");
        }
    }

    //判断是否完成比赛
    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();
    }
}
复制代码

 

posted @   长空扯淡  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示