zoukankan      html  css  js  c++  java
  • Future Clalback使用案例

    目前知道可以实现线程按照顺序的java原生方法有 join(),CountDownLatch,Executors.newSingleThreadExecutor(),FutureTask..

    Future Clalback配合使用

    package com.juc.threadpool;
    
    import java.util.concurrent.*;
    
    /**
     * Created by Administrator on 2018/6/28.
     */
    public class FutureCallBack {
    
        public static void main(String[] args) throws ExecutionException, InterruptedException {
    
            Callable<Integer> callable = () -> {
                TimeUnit.MILLISECONDS.sleep(3000);
                return 3;
            };
    
            FutureTask futureTask = new FutureTask(callable);
            FutureTask futureTask2 = new FutureTask(new MyTask());
            new Thread(futureTask).start();
    
            System.out.println(futureTask.get());//阻塞
            System.out.println("ssssssssssssssssssssss");
            new Thread(futureTask2).start();
            System.out.println(futureTask2.get());//阻塞
            System.out.println("ssssssssssssssssssssss");
            if(futureTask.isDone()){
                new Thread(futureTask2).start();
            }
            System.out.println(futureTask2.get());//阻塞
    
    
            //线程池使用
            ExecutorService executorService = Executors.newSingleThreadExecutor();
             executorService.submit(futureTask);
            System.out.println(futureTask.get());
            executorService.shutdown();
        }
    
        static class MyTask implements Callable<Integer> {
    
            @Override
            public Integer call() throws Exception {
                Thread.sleep(1000);
                return 1;
            }
        }
    
    }
  • 相关阅读:
    Setvlet基础(三) ServletContext
    Servlet基础(二) Servlet的生命周期
    Servlet基础(一) Servlet简介 关键API介绍及结合源码讲解
    JS执行队列
    this指向问题
    发送短信案例
    倒计时
    2:定时器
    1_2:调整窗口大小事件 [ onresize ]
    1_1:页面加载事件 [ window.onload ]
  • 原文地址:https://www.cnblogs.com/jinjian91/p/9241088.html
Copyright © 2011-2022 走看看