在Java中通过线程池实现异步执行

本文介绍了Java中通过线程池实现代码异步执行的概念和应用场景。同步执行按照顺序执行,遇到异常会停止;异步执行则在另一个线程中运行,不影响主线程。线程池能有效管理线程资源,减少创建销毁线程的成本。文章讲解了ThreadPoolExecutor的构造参数和使用示例,展示了如何配置线程池以实现异步任务执行。
摘要由CSDN通过智能技术生成

1 什么是通过线程池实现代码的异步执行

1.1 什么是同步执行

       与异步相对的是同步,这里先解释一下同步执行,同步执行就是平时执行我们的代码,由上至下顺序执行,中间如果有异常或错误出现不会继续往下执行。这也是绝大多数代码的执行方式。比如如下代码。

    System.out.println("a");
    Thread.sleep(2000);
    System.out.println("b");
    System.out.println("c");

        这四行是同步执行的,那么在第一行执行完后,控制台会打印a,由于有Thread.sleep(2000),程序会在睡2秒后,再执行第三、四行,也就是在控制台打印b、c。最后在控制台打印的结果也是a、b、c,如下所示。

a
b
c

        而如果将Thread.sleep(2000);这一行代码改为一段会抛出异常的代码,程序将不会执行第三、四行,最终控制台也不会打印b、c。这里我用0作为除数,由程序抛出异常,代码如下。

    System.out.println("a");
    System.out.println(1 / 0);
    System.out.println("b");
    System.out.println("c");

        执行的结果是只打印了a,还有打印出来的异常信息,程序并没有执行第三、第四行,如下所示。

a
Exception 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值