首页 > 其他分享 >通过一个对象下的多线程模拟龟兔赛跑

通过一个对象下的多线程模拟龟兔赛跑

时间:2022-10-13 13:35:19浏览次数:58  
标签:赛跑 int 龟兔 多线程 public 模拟

package demo1;

import java.util.Objects;

public class Race implements Runnable{
    private static String winner;//定义一个胜利者

    @Override
    public void run() {
        for (int i = 0; i <= 10000; i++) {
            //模拟兔子休息
            if(Objects.equals(Thread.currentThread().getName(), "rabbit") && i%80==0){
                try {
                    Thread.sleep(1);
                } catch (InterruptedException e) {
                    throw new RuntimeException(e);
                }
            }
            //判断比赛是否结束
            boolean flag = gameOver(i);
            if(flag){
                break;
            }
            System.out.println(Thread.currentThread().getName()+" "+"run"+" "+i);
        }
    }

    private boolean gameOver(int step){
        if(winner!=null){
            return true;
        } else if (step == 10000) {//判断胜利者
            winner = Thread.currentThread().getName();
            System.out.println("winner is"+" "+winner);
            return true;
        }
        return false;
    }

    public static void main(String[] args) {
        Race race1 = new Race();//新建线程对象
        //调用线程
        new Thread(race1,"rabbit").start();
        new Thread(race1,"tortoise").start();

    }
}

标签:赛跑,int,龟兔,多线程,public,模拟
From: https://www.cnblogs.com/qt0312/p/16787868.html

相关文章

  • 使用gdb调试多进程和多线程程序
    默认设置下,在调试多进程程序时GDB只会调试主进程。但是GDB(>V7.0)支持多进程的分别以及同时调试,换句话说,GDB可以同时调试多个程序。只需要设置follow-fork-mode(默认值:parent)......
  • 多线程下载网图
    packagedemo1;importorg.apache.commons.io.FileUtils;importjava.io.File;importjava.io.IOException;importjava.net.URL;publicclassTestThread2extends......
  • 面试官:Java 多线程怎么做事务控制?一半人答不上来。。
    项目代码基于:MySql数据,开发框架为:SpringBoot、Mybatis开发语言为:Java8前言公司业务中遇到一个需求,需要同时修改最多约5万条数据,而且还不支持批量或异步修改操作。于是......
  • java-多线程
    java-多线程 以下内容为本人的学习笔记,如需要转载,请声明原文链接https://www.cnblogs.com/lyh1024/p/16786357.html 多线程1.进程与线程1.1什么是进程程序是指......
  • redis基础系列~单线程与多线程
    纯内存KV操作redis的操作都是在内存实现的,众所周知,在计算机的世界中,CPU的速度是远大于内存的速度的,同时内存的速度也是远大于硬盘的速度,所以非常快.所以内存的大小......
  • 利用多线程+countDownluanch 优化查询接口提升效率10倍以上
    最近在做工单系统的生产调优,客户想要单子秒出花了一天时间定位问题,发现查询MySQL、Mongo、Redis查询耗时都很小,在0~4ms耗时较大的是一段给activity中form的field设......
  • 8.NIO-多线程优化
    1.4.4、多线程优化设计思路:分两组选择器单线程配一个选择器,专门处理accpet事件(建立连接)BOSS创建多线程,每个线程一个选择器,专门处理read事件WORK服务端@Slf4jp......
  • 9.NIO-多线程work轮询
    1.4.5、多线程多work轮询@Slf4jpublicclassThreadServerWorks{publicstaticvoidmain(String[]args)throwsIOException,InterruptedException{T......
  • 多线程
    创建线程继承Thread类创建线程publicclassThread01{publicstaticvoidmain(String[]args){//创建Cat对象,可以当做线程使用Catcat=ne......
  • 26、JAVA进阶——多线程
    ✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。......