Executors和ThreadPoolExecutor学习整理

任务的执行与线程池(上) https://mp.weixin.qq.com/s/p3JZERyZXnF8jR_3KKIGJA 任务的执行与线程池(下) https://mp.weixin.qq.com/s/iUAaVXIB8rCzP_GeDhIlqAjava并发编程–Executor 框架 https://www.cnblogs.com/MOBIN/p/5436482.html线程…

大家好,又见面了,我是全栈君。

任务的执行与线程池(上)
https://mp.weixin.qq.com/s/p3JZERyZXnF8jR_3KKIGJA
任务的执行与线程池(下)
https://mp.weixin.qq.com/s/iUAaVXIB8rCzP_GeDhIlqA

java并发编程–Executor 框架
https://www.cnblogs.com/MOBIN/p/5436482.html

线程池 ThreadPoolExecutor 、 Executors 参数详解与源代码分析
https://www.cnblogs.com/nullzx/p/5184164.html

线程池实例:使用Executors和ThreadPoolExecutor
http://www.importnew.com/8542.html

线程池的工作原理及使用示例
https://www.cnblogs.com/nullzx/p/5175574.html

public class ScheduledThreadPoolExecutor extends ThreadPoolExecutor implements ScheduledExecutorService { 
   

Executors: 加了s ,相当于Arrays,Collections 等,

ThreadPoolExecutor : 一个 ExecutorService,它使用可能的几个池线程之一执行每个提交的任务,通常使用 Executors 工厂方法配置。

ScheduledExecutorService: 接口,一个 ExecutorService,可安排在给定的延迟后运行或定期执行的命令。

ScheduledThreadPoolExecutor : 实现了 ScheduledExecutorService: , 因为它作为一个使用 corePoolSize 线程和一个无界队列的固定大小的池,所以调整 maximumPoolSize 没有什么效果。

– 阿里:
线程池不允许 Executors 这个去创建,通过这个 ThreadPoolExecutor 去创建,这样的处理方式让使用的同学明确线程池的运行规则,避免资源耗尽!

说明:
Executors中各个方法的弊端:
1)
– newFixedThreadPool 创建一个可重用固定线程数的线程池,以共享的无界队列方式来运行这些线程。
– newSingleThreadExecutor 创建一个使用单个 worker 线程的 Executor,以无界队列方式来运行该线程。
问题:主要是堆积的请求处理队列可能会耗费非常大的内存,导致OOM!

2)
– newCachedThreadPool 创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用它们。
– newSingleThreadScheduledExecutor 创建一个单线程执行程序,它可安排在给定延迟后运行命令或者定期地执行。
问题:主要问题是线程数的最大值是 Integer.MAX_VALUE(2^31 – 1) ,可能会创建非常多的线程导致OOM!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/121077.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • http://www.msftconnecttest.com/redirect找不到应用程序解决办法

    我在连学校内网的时候,不能自动跳转到登录的页面,因为有一些默认的配置已经被修改。可能有的人认为不是自己修改的,那么原因也有可能是软件安装的过程中默认设置被修改,也有可能是你不轻易间点错了。不废话了,直接发图:第一步:window10:点击左下角的window图标—-找到设置—-点击默认设置第二步:往下拉,找到浏览器的默认设置,点击重置,ok…

    2022年4月6日
    3.3K
  • ThreadPoolExecutor的keepAliveTime=0说明

    点击上方☝,轻松关注!及时获取有趣有料的技术文章如题,如下图,解释ThreadPoolExecutor的keepAliveTime=0。上图来自《并发编程的艺术》一书,书中有下面一段描…

    2022年3月1日
    79
  • python打包exe的方法

    cxfreeze,pyinstaller,py2exe三种方式cxfreeze最简单,安装后脚本在python_home\Scripts下面执行pythoncxfreeze全路径要打包的py文件 –target-dir

    2022年4月8日
    25
  • vs中使用openGL

    vs中使用openGL

    2021年11月19日
    55
  • pycharm全局搜索ctrl+shift+f(win10快捷键冲突)

    pycharm全局搜索ctrl+shift+f(win10快捷键冲突)pycharm全局搜索ctrl+shift+f按了后没有任何效果,是因为跟win10的输入法冲突,只需要设置中添加ctrl+shift+g

    2022年5月31日
    28
  • 哈佛大学《幸福课》笔记

    哈佛大学《幸福课》笔记前述整个九月份以来一直在找工作,工作签好后有各种杂事需要做。当然,更主要的原因是自己懒,所以博客有一个多月没有更新了。今天将自己在大二暑假跟着视频学过的哈佛大学的《幸福课》整理成一篇文章,希望自己以后能够克服困难,多阅读,多学习,多写作,每天能够过的开心充实有意义。《幸福课》笔记(Tal的幸福秘籍)1、你问的问题经常会决定你所做的探索,问题会带来探索。2、信念创造现实,如何理解

    2022年7月25日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号