
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ThreadTest {
public static ExecutorService service = Executors.newFixedThreadPool(5);
public static void main(String[] args) throws ExecutionException, InterruptedException {
System.out.println("main-----start");
//thenRunAsync
CompletableFuture<Void> future = CompletableFuture.supplyAsync(() -> {
System.out.println("当前线程::" + Thread.currentThread().getId());
int i = 10/2;
System.out.println("运行结果::" + i);
return i;
}, service).thenRunAsync(()->{
System.out.println("任务二启动了");
},service);
//thenAcceptAsync
CompletableFuture<Void> voidCompletableFuture = CompletableFuture.supplyAsync(() -> {
System.out.println("当前线程::" + Thread.currentThread().getId());
int i = 10 / 2;
System.out.println("运行结果::" + i);
return i;
}, service).thenAcceptAsync((result) -> {
System.out.println("上一步的执行结果::" + result);
}, service);
//thenApplyAsync
CompletableFuture<String> stringCompletableFuture = CompletableFuture.supplyAsync(() -> {
System.out.println("当前线程::" + Thread.currentThread().getId());
int i = 10 / 2;
System.out.println("运行结果::" + i);
return i;
}, service).thenApplyAsync((result) -> {
return "hello---" + result;
}, service);
System.out.println(stringCompletableFuture.get());
System.out.println("main-----end--");
}
}