java newCachedThreadPool线程池使用在什么情况下

java newCachedThreadPool线程池的使用情况:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。

java newCachedThreadPool线程池使用在什么情况下-Worktile社区

一、Java线程池

Java通过Executors提供四种线程池,分别为:

1、newCachedThreadPool创建一个可缓存的线程池。如果线程池的大小超过了处理任务所需要的线程,那么就会回收部分空闲(60秒不执行任务)的线程,当任务数增加时,此线程池又可以智能的添加新线程来处理任务。此线程池不会对线程池大小做限制,线程池大小完全依赖于操作系统(或者说JVM)能够创建的最大线程大小。

2、newFixedThreadPool 创建固定大小的线程池。每次提交一个任务就创建一个线程,直到线程达到线程池的最大大小。线程池的大小一旦达到最大值就会保持不变,如果某个线程因为执行异常而结束,那么线程池会补充一个新线程。

3、newScheduledThreadPool 创建一个大小无限的线程池。此线程池支持定时以及周期性执行任务的需求。

newSingleThreadExecutor 创建一个单线程的线程池。这个线程池只有一个线程在工作,也就是相当于单线程串行执行所有任务。如果这个少数的线程因为异常结束,那么会有一个新的线程来替代它。此线程池保证所有任务的执行顺序按照任务的提交顺序执行。

二、线程池的作用

线程池作用就是限制系统中执行线程的数量。 

根据系统的环境情况,可以自动或手动设置线程数量,达到运行的优异效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量,其他线程排 队等候。一个任务执行完毕,再从队列的中取最前面的任务开始执行。若队列中没有等待进程,线程池的这一资源处于等待。当一个新任务需要运行时,如果线程池 中有等待的工作线程,就可以开始运行了;否则进入等待队列。

延伸阅读

为什么要用线程池

1.减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。

2.可以根据系统的承受能力,调整线程池中工作线线程的数目,防止因为消耗过多的内存,而把服务器累趴下(每个线程需要大约1MB内存,线程开的越多,消耗的内存也就越大,最后死机)。

Java里面线程池的拔尖接口是Executor,但是严格意义上讲Executor并不是一个线程池,而只是一个执行线程的工具。真正的线程池接口是ExecutorService。

文章标题:java newCachedThreadPool线程池使用在什么情况下,发布者:小编,转载请注明出处:https://worktile.com/kb/p/37571

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编认证作者
上一篇 2023年2月9日 下午3:16
下一篇 2023年2月9日 下午3:51

相关推荐

  • 常见的办公软件系统有哪些

    常见的办公软件有:1.Word;2.Excel;3.PowerPoint;4.Access;5.OneNote;6.WPS Office;7.Xmind;8.Photoshop;9.腾讯文档;10.福昕PDF阅读器。Word被认为是Office的主要程序,在其主页面可以对文字进行编辑和处理,以整理出…

    2023年4月18日
    1.2K00
  • 事项任务软件有哪些

    事项任务软件有:一、PingCode;二、Worktile;三、Taiga;四、OmniPlan;五、MeisterTask;六、Jira。PingCode的优势在于它是一款覆盖研发全生命周期的项目管理系统,被广泛用于需求收集、需求管理、需求优先级、产品路线图、项目管理、测试管理、缺陷追踪、文档管理…

    2023年4月24日
    28100
  • python列表和数组区别是什么

    python列表和数组区别在于以下几个方面:1、创建方式不同;2、元素不同;3、运算方式不同。其中,创建方式不同是指,在python之中列表是最基础的数据类型,它可以直接使用list()函数或者是方括号来创建空或者有值的列表。 一、创建方式不同 在python之中列表是最基础的数据类型,它可以直接使…

    2023年3月18日
    3.4K00
  • 什么是启发式分析

    启发式分析是一种通过检查代码的可疑属性来检测病毒的方法,它是少数几种能够抵御多态病毒(表示会不断变化并适应的恶意代码)的方法之一,它可以采用多种不同的技术。其中一种启发式方法称为静态启发式分析,包括对可疑程序进行反编译并检查其源代码。 什么是启发式分析 启发式分析是一种通过检查代码的可疑属性来检测病…

    2022年11月4日
    55800
  • oa付款单

    标题:OA付款单内部处理流程 OA付款单处理过程通常涉及审批流转、验证数据及最终的资金划拨。其中,验证数据的正确性和合规性是保障付款准确无误的关键环节。 OA系统(Office Automation System,办公自动化系统)为了提高工作效率,确保付款活动的准确性与合法性,将付款单的处理流程数字…

    2024年1月11日
    26500
  • 如何配置和优化知识库的搜索算法

    配置和优化知识库的搜索算法的步骤:1、理解搜索算法的基本原理;2、选择合适的搜索引擎;3、优化搜索引擎的配置;4、配置搜索查询的参数;5、监控和调整搜索算法;6、安全性和隐私保护。知识库作为组织内部或外部信息的集中存储和检索平台,其搜索算法的配置和优化对于用户体验和信息查找效率至关重要。

    2023年11月17日
    51000
  • 硬件开发用什么项目管理系统

    可以用以下项目管理系统:1. JIRA;2. Trello;3. Asana;4. Microsoft Project;5. GitLab。JIRA是Atlassian公司开发的一款集任务跟踪、缺陷管理和项目管理于一体的软件。它被广泛应用于软件开发领域,但也适用于硬件开发。 1. JIRA JIRA…

    2023年2月28日
    76000
  • 机器学习中核函数的定义和作用是什么

    核函数,也称为相似度函数,是一个在原始特征空间中定义的函数,它可以测量两个数据点之间的相似度。核函数的主要作用是将数据从低维特征空间映射到高维空间,这样在高维空间中,原本在低维空间中不线性可分的数据点可能变得线性可分。 核函数的定义 核函数,也称为相似度函数,是一个在原始特征空间中定义的函数,它可以…

    2023年7月23日
    1.1K00
  • 为什么外企没有oa办公系统

    原因有:一、谨慎承诺邮件代表一切;二、外企会议少且能当场拍板;三、工作习惯有差异无需OA。外企的职业化程度非常高,谨慎承诺,做过的承诺一定会兑现。说要什么时间解决什么问题,由谁来解决,只要前期有了明确承诺和计划,他们一定是说到做到。 一、谨慎承诺邮件代表一切 外企的职业化程度非常高,谨慎承诺,做过的…

    2023年5月28日
    47300
  • python写错了怎么删除

    在Python编程中,如果写错了代码,可以通过以下几个方面进行修正或删除:1、使用文本编辑器或IDE的撤销功能;2、手动删除或修改错误代码;3、使用版本控制系统恢复到之前的版本;4、从备份中恢复代码。 1、使用文本编辑器或IDE的撤销功能 几乎所有的文本编辑器和集成开发环境(IDE)都提供了撤销功能…

    2023年8月17日
    2.3K00

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部