>>分享Java编程技术,对《Java面向对象编程》等书籍提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 22393 个阅读者 刷新本主题
 * 贴子主题:  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开发-->JavaWeb应用入门(Ⅱ)
  JSP与Hibernate开发-->Java对象持久化技术概述
  Java网络编程-->客户端协议处理框架
  精通Spring-->计算属性和数据监听
  Vue3开发-->Vue简介
  CRMEB_Java新零售社交电商系统
  从实战角度解读JVM:类加载机制+JVM调优实战+代码优化!
  整理收集的一些常用java工具类
  JDK自带JVM调优工具的用法
  使用策略模式优化代码实践,如何让项目快速起飞
  最实用的10个重构小技巧排行榜,你都用过哪些?
  超详细的Java运算符修炼手册(优秀程序员不得不知道的运算技...
  Java读取大文件的高效率实现_java大文件
  Java多线程volatile详解
  java 支持分词的高性能拼音转换工具,速度是 pinyin4j 的两倍
  Java入门实用代码:自定义异常
  通过Java读取Excel数据
  Java判断一个字符是否为中文字符
  正则表达式【匹配非字母和数字】
  【Java 并发笔记】CountDownLatch 相关整理
  更多...
 IPIP: 已设置保密
树形列表:   
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


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