JAVA线程池原理源码解析—为什么启动一个线程池,提交一个任务后,Main方法不会退出?
JAVA线程池原理源码解析—为什么启动一个线程池,提交一个任务后,Main方法不会退出?_qq_43171869的博客-CSDN博客
public static void main(String[] args) {
ExecutorService service = Executors.newFixedThreadPool(10);
service.submit(() -> System.out.println("Hello "));
System.out.println("World");
}
复制代码
呵呵,执行结果谁都知道,显而易见
但是小老弟,有没有发现这个程序 一直都没有结束
呢?明明这个任务都已经跑完了呀~
结论
开始了吗?不好意思已经结束了,嘻嘻,大过年的不卖关子,我们直接公布答案,造成不退出的原因是这样:
你丑 线程池的创建的时候,第一次 submit 操作会创建 Worker 线程(负责去拿任务处理),该线程里写了一个死循环,所以
JAVA线程池原理源码解析—为什么启动一个线程池,提交一个任务后,Main方法不会退出?最先出现在Python成神之路。
共有 0 条评论