future应用相关

 1 package com.future;
 2 
 3 import java.util.concurrent.*;
 4 
 5 
 6 public class FDemo {
 7     public static final ExecutorService service = Executors.newSingleThreadExecutor();
 8     public static final ExecutorService service1 = Executors.newSingleThreadExecutor();
 9     public static final ExecutorService threadPoolExecutor = new ThreadPoolExecutor(4, 10, 60, TimeUnit.MILLISECONDS, new LinkedBlockingQueue(5));
10 
11     public static void main(String[] args) throws InterruptedException, ExecutionException, TimeoutException {
12         Future<Boolean> booleanTask = threadPoolExecutor.submit(() -> {
13             Thread.sleep(3000);
14             return true;
15         });
16         System.out.println("11111111111");
17         // 任务2
18         Future<String> stringTask = threadPoolExecutor.submit(() -> {
19             Thread.sleep(4000);
20             return "Hello World";
21         });
22         //当get的时候开始计算超时,如果不需要考虑超时,可以使用
23         //!booleanTask.isCancelled()&&booleanTask.isDone()来获取值
24         Boolean result1 = booleanTask.get(3, TimeUnit.SECONDS);
25         System.err.println("任务1-10s: " + result1);
26 
27      //当过去3秒才会执行到这里,stringTask延迟4秒,即只要允许超过1秒可以获取消息就行,而这里是允许3秒后才获取结果
28         String result = stringTask.get(3, TimeUnit.SECONDS);
29         System.err.println("任务2-3s: " + result);
30 
31 
32     }
33 
34 
35 }

 

posted @ 2021-06-04 17:16  龙之谷2019  阅读(55)  评论(0编辑  收藏  举报