>>分享Java编程技术,对《Java面向对象编程》等书籍提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 23651 个阅读者 刷新本主题
 * 贴子主题:  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开发-->在Web应用中访问Web服务
  JSP与Hibernate开发-->Spring、JPA与Hibernate的整合
  Java网络编程-->用Spring整合CXF发布Web服务
  精通Spring-->组合(Composition)API
  Vue3开发-->组合(Composition)API
  类连接阶段的验证原理
  观察者模式和发布订阅模式的区别
  18 张图弄懂面试官必问的一致性哈希
  被迫重构代码,这次我干掉了 if-else
  Java方法的嵌套与递归调用
  JAVA常用数据结构
  用BigDecimal进行精确运算的范例
  Java入门实用代码:List 循环移动元素
  Java入门实用代码:自定义异常
  Java入门实用代码:文件重命名
  Java入门实用代码:将文件内容复制到另一个文件
  Java入门实用代码:字符串优化测试
  JAVA日期加减运算
  史上最全正则表达式合集(马上收藏)
  判断一个字符是否是汉字
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


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