1. 程式人生 > 其它 >專案中進行條件初始化使用執行緒池

專案中進行條件初始化使用執行緒池

public class Executor {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        ThreadPoolExecutor executor = new ThreadPoolExecutor(5, 10, 12,
                TimeUnit.SECONDS, new ArrayBlockingQueue<>(5), new ThreadPoolExecutor.CallerRunsPolicy());

        Map paramMap
=new HashMap(); //在進行條件初始化時(format時)可以使用執行緒池 //初始化條件1 CompletableFuture<Void> future1 = CompletableFuture.runAsync(() -> { paramMap.put("p1","你若執行完了等我"); }, executor); //初始化條件2 CompletableFuture<Void> future2 = CompletableFuture.runAsync(() -> { paramMap.put(
"p2","你若執行完了等我"); }, executor); //讓兩個執行緒都等各自執行完畢 CompletableFuture<Void> allFutureWait = CompletableFuture.allOf(future1, future2); Void unused = allFutureWait.get(); System.out.println("paramMap="+paramMap); } }