>>分享Java编程技术,对《Java面向对象编程》等书籍提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 27731 个阅读者 刷新本主题
 * 贴子主题:  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面向对象编程-->面向对象开发方法概述之UML语言(下)
  JavaWeb开发-->数组
  JSP与Hibernate开发-->继承
  Java网络编程-->类的生命周期
  精通Spring-->JSP技术详解(Ⅰ)
  Vue3开发-->JavaWeb应用入门(Ⅰ)
  Java函数式接口和Stream流
  BIO、NIO和AIO的区别、三种IO的原理与用法
  Java Proxy用法: 让我们创建一个API代理器
  内部类的种类和用法
  java万年历简单制作
  Java注解的定义和使用
  Eclipse使用指南:快速修复功能
  Java设计模式:装饰器模式
  用BigDecimal进行精确运算的范例
  Java入门实用代码:使用 Enumeration 遍历 HashTable
  Java入门实用代码:文件重命名
  Java入门实用代码:向文件写入字符串
  Java入门实用代码:打印矩形
  Java入门实用代码: 方法重载
  JDBC使用8.0驱动包连接mysql设置时区serverTimezone
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


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