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