无返回值
/**
* CompletableFuture.runAsync 无返回值
* 不指定线程池 则使用默认的ForkJoinPool线程池
*/
public class ComplatebleFutureDemo01 {
public static void main(String[] args) throws ExecutionException, InterruptedException {
ExecutorService threadPool = Executors.newFixedThreadPool(3);
CompletableFuture<Void> runAsync = CompletableFuture.runAsync(()->{
System.out.println(Thread.currentThread().getName());
try {TimeUnit.MILLISECONDS.sleep(500);} catch (InterruptedException e) {e.printStackTrace();}
},threadPool);
System.out.println(runAsync.get());
threadPool.shutdown();
}
}
有返回值
/**
* CompletableFuture.runAsync 无返回值
* CompletableFuture.supplyAsync 有返回值
* 不指定线程池 则使用默认的ForkJoinPool线程池
*/
public class ComplatebleFutureDemo01 {
public static void main(String[] args) throws ExecutionException, InterruptedException {
ExecutorService threadPool = Executors.newFixedThreadPool(3);
CompletableFuture<String> uCompletableFuture = CompletableFuture.supplyAsync(() -> {
System.out.println(Thread.currentThread().getName());
try {TimeUnit.MILLISECONDS.sleep(500);} catch (InterruptedException e) {e.printStackTrace();}
return "hello 有返回值";
},threadPool);
System.out.println("返回值为:"+uCompletableFuture.get());
threadPool.shutdown();
}