
说明
1、JDK 8中引入了 CompletableFuture 类,实现了Future和CompletionStage接口.
为异步编程提供了一些列方法,如supplyAsync、runAsync和thenApplyAsync等。
2、功能是可以让两个或者多个进行运算来产生结果。
实例
/**
*@authormghio
*@since2021-08-01
*/
publicclassCompletableFutureDemo{
publicstaticCompletableFuture<String>doOneThing(){
returnCompletableFuture.supplyAsync(()->{
try{
Thread.sleep(2000);
}catch(InterruptedExceptione){
e.printStackTrace();
}
return"doOneThing";
});
}
publicstaticCompletableFuture<String>doOtherThing(Stringparameter){
returnCompletableFuture.supplyAsync(()->{
try{
Thread.sleep(2000);
}catch(InterruptedExceptione){
e.printStackTrace();
}
returnparameter+""+"doOtherThing";
});
}
publicstaticvoidmain(String[]args)throwsExecutionException,InterruptedException{
StopWatchstopWatch=newStopWatch("CompletableFutureDemo");
stopWatch.start();
//异步执行版本
testCompletableFuture();
stopWatch.stop();
System.out.println(stopWatch);
}
privatestaticvoidtestCompletableFuture()throwsInterruptedException,ExecutionException{
//先执行doOneThing任务,后执行doOtherThing任务
CompletableFuture<String>resultFuture=doOneThing().thenCompose(CompletableFutureDemo::doOtherThing);
//获取任务结果
StringdoOneThingResult=resultFuture.get();
//获取执行结果
System.out.println("DoOneThingandDoOtherThingexecutefinished.result="+doOneThingResult);
}
}
以上就是java中CompletableFuture方式的介绍,希望对大家有所帮助。更多Java学习指路:Java基础
原文来自:https://www.py.cn© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END


















































暂无评论内容