zoukankan      html  css  js  c++  java
  • Future与FutureTask简单使用

      概念不多说,网上随便百度下就可以找到一堆。直接看代码,注意关注下运行结果中日志记录的时间。

    一,Future:

    @Slf4j
    public class MyFutureDemo {
        @SuppressWarnings("all")
        public static void main(String[] args) throws Exception {
            ExecutorService pool = Executors.newCachedThreadPool();
            Future<String> future = pool.submit(new Callable<String>() {
                @Override
                public String call() throws Exception {
                    log.info("callable execute ...");
                    Thread.sleep(5000);
                    return "done";
                }
            });
            log.info("execute something in main ...");
            Thread.sleep(1000);
            log.info("future is done ? {}", future.isDone());
            log.info("result: {}", future.get());
            log.info("future is done ? {}", future.isDone());
        }
    }

    运行结果:

    二,FutureTask

    @Slf4j
    public class MyFutureTaskDemo {
        @SuppressWarnings("all")
        public static void main(String[] args) throws Exception {
            ExecutorService threadPool = Executors.newCachedThreadPool();
            FutureTask<String> futureTask = new FutureTask<String>(new Callable() {
                @Override
                public Object call() throws Exception {
                    log.info("callable execute ...");
                    Thread.sleep(5000);
                    return "done";
                }
            });
            threadPool.submit(futureTask);
            log.info("execute something in main ...");
            Thread.sleep(1000);
            log.info("future is done ? {}", futureTask.isDone());
            log.info("result: {}", futureTask.get());
            log.info("future is done ? {}", futureTask.isDone());
        }
    }

    运行结果:

  • 相关阅读:
    Jsp语法、指令及动作元素
    java之Cookie详解
    servlet请求转发、包含以及重定向
    20181114_特性
    20181114_反射_泛型反射
    20181112_反射基础_对象获取
    20181110_wait和async
    20181106_线程之异常_取消_变量_安全Lock
    20181105_线程之Task
    20181104_C#线程之Thread_ThreadPool_使用Thread实现回到和带参数的回调
  • 原文地址:https://www.cnblogs.com/enchaolee/p/11447136.html
Copyright © 2011-2022 走看看