>>分享Java编程技术,对《Java面向对象编程》等书籍提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 27798 个阅读者 刷新本主题
 * 贴子主题:  Java线程实现龟兔赛跑 回复文章 点赞(0)  收藏  
作者:flybird    发表时间:2021-02-25 01:10:18     消息  查看  搜索  好友  邮件  复制  引用

    

1.定义一个实体类

实现callable接口


class Ract implements Callable<Integer>{

    private String name;//姓名
    private long time;//延时时间
    private boolean flag = true; // 标记
    private int step = 0 ;//步数
    
    public Ract(String name, long time) {
        super();
        this.name = name;
        this.time = time;
    }

    @Override
    public Integer call() throws Exception {
        while(flag){//当标记为true的时候,会一直走
            Thread.sleep(time);//每隔多长时间走一步
            step ++ ;
        }
        return step;
    }


创建主线程

public static void main(String args[]) throws InterruptedException, ExecutionException{
        //创建一个定长的线程池
        ExecutorService pool = Executors.newFixedThreadPool(2);
        
        Ract ract = new Ract("乌龟",1000);
        Ract ract2 = new Ract("兔子",200);
        
        Future<Integer> submit = pool.submit(ract);
        Future<Integer> submit2 = pool.submit(ract2);
        
        //设定时间为多长,时间到了,结束跑步
        Thread.sleep(2000);
        ract.setFlag(false);
        ract2.setFlag(false);
        
        
        Integer integer = submit.get();
        Integer integer2 = submit2.get();
        
        System.out.println("兔子走了:"+integer2+"步");
        System.out.println("乌龟走了:"+integer+"步");
        
        pool.shutdownNow();
    }

  结果

点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

----------------------------
原文链接:https://www.jianshu.com/p/696895a4680b



程序猿的技术大观园:www.javathinker.net
  Java面向对象编程-->多线程(上)
  JavaWeb开发-->Servlet技术详解(Ⅱ)
  JSP与Hibernate开发-->Java对象持久化技术概述
  Java网络编程-->Java网络编程入门
  精通Spring-->
  Vue3开发-->创建综合购物网站应用
  利用堆栈将中缀表达式转换成后缀表达式
  Java内存设置详解(含内存溢出问题的解决)
  从实战角度解读JVM:类加载机制+JVM调优实战+代码优化!
  Java Optional 解决空指针异常总结
  java.util.logging.Logger使用详解
  Java的对象的拷贝方式集合
  Java是如何实现自己的SPI机制的?
  64匹马,8个赛道,找出跑得最快的4匹马
  Eclipse的安装配置
  java中的Static、final、Static final各种用法
  面试必考-static、final和单例模式
  Java 入门实用代码: 数组差集
  Java 入门实用代码:取最大和最小值
  java使用gzip实现文件解压缩示例
  JDBC使用8.0驱动包连接mysql设置时区serverTimezone
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。