首页 > 其他分享 >65、商城业务---异步---CompletableFuture完成回调与异常感知

65、商城业务---异步---CompletableFuture完成回调与异常感知

时间:2023-02-07 16:02:23浏览次数:67  
标签:java System --- CompletableFuture 65 println out

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");

//        CompletableFuture.runAsync(()->{
//            System.out.println("当前线程::" + Thread.currentThread().getId());
//            int i = 10/2;
//            System.out.println("运行结果::" + i);
//        }, service);

        CompletableFuture<Integer> future = CompletableFuture.supplyAsync(() -> {
            System.out.println("当前线程::" + Thread.currentThread().getId());
            int i = 10/0;
            System.out.println("运行结果::" + i);

            return i;
        }, service).whenComplete((result, exception)->{
            /**
             * 虽然能得到异常信息,但是没有返回值,也就没法修改返回数据
             */
            System.out.println("结果是::" + result);
            System.out.println("异常是::" + exception);
        }).exceptionally(throwable -> {
            /**
             * 可以修改返回数据
             */
            System.out.println("异常是::" + throwable);
            return 10;
        });

        System.out.println("main-----end--" + future.get());
    }
}

标签:java,System,---,CompletableFuture,65,println,out
From: https://www.cnblogs.com/morehair/p/17098762.html

相关文章

  • Linux系统入门-SELinux安全子系统
    SELinux系统安全增强型Linux(SELinux)是一种采用安全架构的Linux®系统,它能够让管理员更好地管控哪些人可以访问系统。它最初是作为Linux内核的一系列补丁,由美国国家安全......
  • Oracle19c 解决ORA-28001
    今天一个网页出现404错误查看tomcat日志发现是数据库连接不上了,报错信息上可以看出是用户的口令(密码)失效了,查阅相关资料,发现oracle12c会默认给每一个用户的口令180天的有效......
  • PostgreSQL-14 安装配置-wsl_v1_ubuntu22.04
    环境准备pgAdmin:Cisco2022postgrep数据库:leiwang6:Leiwang6_2023postgres:Postgres_2023installhttps://learn.microsoft.com/en-us/windows/wsl/tutorials/w......
  • CICS教程_编程入门自学教程_菜鸟教程-免费教程分享
    教程简介CICS快速指南-从CICS概述,环境,基本术语,Nucleus,事务,COBOL基础知识,BMS,MAP,接口块,伪编程,辅助密钥,文件处理,错误处理,控制操作,简单而简单的步骤学习CICS临时存储,互通,状态......
  • 开心档-软件开发入门之MongoDB 覆盖索引查询
     作者简介:每天分享​​MongoDB教程​的学习经验、和学习笔记。  座右铭:有自制力,做事有始有终;学习能力强,愿意不断地接触学习新知识。个人主页:​​雪奈椰子的主页​​ 前......
  • 开心档-软件开发入门之MongoDB 创建集合
    作者简介:每天分享​​MongoDB教程​​的学习经验、和学习笔记。  座右铭:有自制力,做事有始有终;学习能力强,愿意不断地接触学习新知识。​个人主页:​​雪奈椰子的主页​​​......
  • 软件测试书籍-学软件测试最好的书
     一.《软件测试的艺术》新梦想技术分享适合软件开发人员、IT项目经理等相关读者阅读,还可以作为高等院校计算机相关专业软件测试课程的教材或参考书。从第1版付梓到现......
  • k8s可视化界面-kuboard v3安装
    1、Kuboard-Kubernetes多集群管理界面Kuboard是k8s的一个多集群管理页面。官网地址:https://kuboard.cn/2、安装安装Kuboard之前,假设:您已经准备好......
  • ui->setupUi(this)
    新建好Qt的工程之后,总是会在MainWindow函数中有一行代码ui->setupUi(this);ui->setupUi(this)是由.ui文件生成的类的构造函数,这个函数的作用是对界面进行初始化,它按照......
  • Jenkins 贡献者线上峰会 - 二月 23 日至 25 日
    翻译:0N0thingJenkins贡献者峰会让Jenkins项目目前以及将来的贡献者们能够齐聚一堂。今年我们主持本次线上峰会是为了鼓励全世界的贡献者们相互了解、讨论、规划未来。此......