zoukankan      html  css  js  c++  java
  • 并发编程 futuretask

    package com.mrbird.api.demoThread.future;
    
    import java.util.concurrent.Callable;
    import java.util.concurrent.ExecutionException;
    import java.util.concurrent.FutureTask;
    
    /**
     * @Description
     * @Author: liucq
     * @Date: 2019/4/8
     */
    public class CookFuture {
    
        public static void main(String[] args) throws InterruptedException, ExecutionException {
            long startTime = System.currentTimeMillis();
            // 第一步 网购厨具
            BuyChuJu buyChuJu = new BuyChuJu();
            FutureTask<Chuju> task = new FutureTask<Chuju>(buyChuJu);
            new Thread(task).start();
            // 第二步 去超市购买食材
            // 模拟购买食材时间
            Thread.sleep(2000);
            Shicai shicai = new Shicai();
            System.out.println("第二步:食材到位");
            // 第三步 用厨具烹饪食材
            // 联系快递员,询问是否到货
            if (!task.isDone()) {
                System.out.println("第三步:厨具还没到,心情好就等着(心情不好就调用cancel方法取消订单)");
            }
            Chuju chuju = task.get();
            System.out.println("第三步:厨具到位,开始展现厨艺");
            cook(chuju, shicai);
    
            System.out.println("总共用时" + (System.currentTimeMillis() - startTime) + "ms");
        }
    
        /**
         * 用厨具烹饪食材
         *
         * @param chuju
         * @param shicai
         */
        static void cook(Chuju chuju, Shicai shicai) {
        }
    
        // 厨具类
        static class Chuju {
        }
    
        // 食材类
        static class Shicai {
        }
    
        /**
         * 买厨具
         */
        static class BuyChuJu implements Callable<Chuju> {
            @Override
            public Chuju call() throws Exception {
                System.out.println("第一步:下单");
                System.out.println("第一步:等待送货");
                // 模拟送货时间
                Thread.sleep(5000);
                System.out.println("第一步:快递送到");
                return new Chuju();
            }
        }
    
    }
     
  • 相关阅读:
    HTML5: HTML5 WebSocket
    mfs-管理员
    java实现平面点最小距离
    java实现平面点最小距离
    java实现平面点最小距离
    java实现排他平方数
    java实现排他平方数
    java实现排他平方数
    java实现排他平方数
    java实现排他平方数
  • 原文地址:https://www.cnblogs.com/dand/p/10670595.html
Copyright © 2011-2022 走看看