1 Star 0 Fork 0

Jinniannian/practice

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
FutureDemo.java 1.50 KB
一键复制 编辑 原始数据 按行查看 历史
Jinniannian 提交于 3年前 . first commit
package JUC_Study.future;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
public class FutureDemo {
public static void main(String[] args) throws ExecutionException, InterruptedException {
/*
没有返回值的 runAsync 异步回调
*/
// CompletableFuture<Void> completableFuture = CompletableFuture.runAsync(()->{
// try {
// TimeUnit.SECONDS.sleep(2);
// } catch (InterruptedException e) {
// e.printStackTrace();
// }
// System.out.println(Thread.currentThread().getName()+"runAsync=>Void");
// });
//
// System.out.println("1111111");
//
// completableFuture.get(); // 获取阻塞执行结果
/*
有返回值的 supplyAsync 异步回调
返回的是错误信息
*/
CompletableFuture<Integer> completableFuture = CompletableFuture.supplyAsync(()->{
System.out.println(Thread.currentThread().getName()+"supplyAsync=>Integer");
int i = 10/0;
return 1024;
});
System.out.println(completableFuture.whenComplete((t,u)->{
System.out.println("t=>" + t); // 正常的返回结果
System.out.println("u=>" + u); // 错误的信息
}).exceptionally((e)->{
System.out.println(e.getMessage());
return 233; // 可以获取到错误的返回结果
}).get());
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/busanl/practice.git
git@gitee.com:busanl/practice.git
busanl
practice
practice
master

搜索帮助