package com.alatus.search; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class CompletableFutureTest { public static ExecutorService service = Executors.newFixedThreadPool(10); public static void main(String[] args) throws InterruptedException, ExecutionException { // CompletableFuture会启动一个异步任务,当它用的是supplyAsync的时候,是可以返回值的 // 我们可以和FutureTask一样通过get来获取这个值 CompletableFuture.runAsync(() -> { System.out.println("异步任务"); },service); CompletableFuture<Long> longCompletableFuture = CompletableFuture.supplyAsync(() -> { long id = Thread.currentThread().getId(); System.out.println(id); return id; }, service); Long l = longCompletableFuture.get(); System.out.println(l); System.out.println("我是main方法"); } }
package com.alatus.search; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class CompletableFutureTest { public static ExecutorService service = Executors.newFixedThreadPool(10); public static void main(String[] args) throws InterruptedException, ExecutionException { // CompletableFuture会启动一个异步任务,当它用的是supplyAsync的时候,是可以返回值的 // 我们可以和FutureTask一样通过get来获取这个值 CompletableFuture.runAsync(() -> { System.out.println("异步任务"); },service); CompletableFuture<Long> longCompletableFuture = CompletableFuture.supplyAsync(() -> { long id = Thread.currentThread().getId(); System.out.println(id); return id; }, service); Long l = longCompletableFuture.get(); System.out.println(l); System.out.println("我是main方法"); } }
08-24
1914
11-22
2207
08-20
411