CodeZLei

  博客园 :: 首页 :: 博问 :: 闪存 :: :: 联系 :: 订阅 订阅 :: 管理 ::

Executors和ThreadPoolExecutor两者的区别和联系

jdk中文文档 https://blog.fondme.cn/apidoc/jdk-1.8-google/

还可以的两个博客

线程池介绍 https://www.cnblogs.com/baizhanshi/p/5469948.html

并发包中的类 https://www.cnblogs.com/baizhanshi/p/7474564.html

面试题 https://www.cnblogs.com/baizhanshi/p/6641011.html

https://blog.csdn.net/qq_25806863/article/details/71126867
https://blog.csdn.net/hayre/article/details/53291712

SynchronousQueue
超出最大线程数量就会报错

LinkedBlockingDeque
会有一个任务队列,超过核心线程数量会放在任务队列中,如果任务队列有大小限制,
则超出的任务数量会去执行,但是线程运行的总数不会超过最大线程数量,如果超出则会出现异常

 阿里巴巴 开发文档是 强制~

4. 【强制】线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式,这样
的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险。
说明: Executors 返回的线程池对象的弊端如下:
1FixedThreadPool SingleThreadPool:
允许的请求队列长度为 Integer.MAX_VALUE,可能会堆积大量的请求,从而导致 OOM
2CachedThreadPool ScheduledThreadPool:
允许的创建线程数量为 Integer.MAX_VALUE, 可能会创建大量的线程,从而导致 OOM

posted on 2018-06-06 18:42  CodeZLei  阅读(167)  评论(0编辑  收藏  举报