1.导语
最近在工作中,有遇到下面这样一段代码,某个同事一看到代码中的shutdown(),马上就断定这代码执行不了,我问为什么这么说,他说线程池都关了,这任务怎么执行?不能说没有问题,但事实真如他所说吗,我们来探一探shutdown()的虚实。
![4f23957f0f683229ef09c41bd9862113.png](https://i-blog.csdnimg.cn/blog_migrate/8474f99334ad0e3ca2d5d198a13f631f.jpeg)
简单代码
2.shutdown 源码
![dc0b4c5e5ffc2464cc59ba648fb4efa2.png](https://i-blog.csdnimg.cn/blog_migrate/44d859a57e5b627af216114916821404.jpeg)
shutdown 源码
从shutdown 源码的注释我们可以看到,它会初始化一个顺序的已提交的任务的关闭操作,并且不再接受新的任务;如果线程池已经被showdown了,那么该方法的调用将没有任何的效果了。
下面我来对showdown内部调用的方法做个解析。