java创建线程池参数_java创建线程的四种方式

java创建线程池参数_java创建线程的四种方式java如何创建线程池

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

一、工作中使用线程池的好处:
1.降低资源消耗,线程的创建和消耗是非常消耗资源的,使用线程池可以避免线程的频繁创建和消耗,从而降低资源消耗。
2.提高响应速度,当请求到达时,线程池可以为请求直接分配一个线程,因此就不用等待线程创建就可以立即执行。
3.线程池可以很好的管理线程。

二、java中有哪些常用的线程池(java.util.concurrent.Executors):
1.CachedThreadPool:可缓存线程池,它是一个可以无限扩大的线程池。
创建方法为:Executors.newCachThreadPool();
2.FixedThreadPool:固定线程池,即线程池中线程个数是固定的。
创建方法为:Executors.newFixedThreadPool(3);
3.SingleThreadExecutor:单线程线程池,即只创建一个工作线程来执行任务,单线程线程池最大的特点就是可以保证顺序执行各个任务。
创建方法为:Executors.newSingleThreadExecutcor();
4.ScheduleThreadPool:定长线程池,且支持定时及周期性任务。
创建方法为:Executors.newScheduleThreadPool(5);

三、这样创建线程池有什么问题:
上述线程池的创建方式,可能会导致OOM,例如:FixedThreadPool和SingelThreadPool允许的请求队列长度为:Integer.MAX_VALUE,这样可能堆积大量请求,导致OOM;而CachedThreadPool允许创建的线程数量为Integer.MAX_VALUE,这样可能创建大量的线程,导致OOM.。
所以建议通过ThreadPoolExecutor来创建线程池,方式如下:
new ThreadPoolExecutor(10,//核心线程数
20,//最大线程数
1L,//空闲线程存活时间
TimeUnit.MILLISECONDS,//空闲线程存活时间单位
new LinkedBlockingQueue(1024),//阻塞队列
new ThreadFactoryBuilder().setNameFormat(“demo-pool-%d”).build(),//线程工厂
new ThreadPoolExecutor.AbortPolicy());//拒绝策略

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

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

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


相关推荐

  • 在eclipse中拉取github互联网上的代码

    在eclipse中拉取github互联网上的代码

    2021年7月17日
    73
  • 行存储 VS 列存储[通俗易懂]

    行存储 VS 列存储[通俗易懂]概述目前大数据存储有两种方案可供选择:行存储(Row-Based)和列存储(Column-Based)。业界对两种存储方案有很多争持,集中焦点是:谁能够更有效地处理海量数据,且兼顾安全、可靠、完整性。从目前发展情况看,关系数据库已经不适应这种巨大的存储量和计算要求,基本是淘汰出局。在已知的几种大数据处理软件中,Hadoop的HBase采用列存储,MongoDB是文档型的行存储,Lexst是二进制型…

    2022年7月14日
    13
  • Celer Network月报 202107

    Celer Network月报 202107Celer技术研发更新 cBridgev1开发完成,主网上线,运行良好 cBridgev2开始研发,新增智能费率与流动性调节功能 Layer2.finance测试网成功运行,完成所有相关问题修复与功能改进 正在进行多项Layer2.finance的策略开发工作 SGN主网技术支持,现已有10个验证节点上线 Celer社区建设及市场活动社区动态更新本月重点事件Layer2.financev1.0版本测…

    2022年5月17日
    61
  • SQL Like 通配符

    SQL Like 通配符 SQL通配符在搜索数据库中的数据时,SQL通配符可以替代一个或多个字符。SQL通配符必须与LIKE运算符一起使用。在SQL中,可使用以下通配符:通配符描述%替代一个或多个字符_仅替代一个字符[charlist]字符列中的任何单一字符[^charlist]或者[!charlist]

    2022年7月15日
    15
  • 520-希望可以做一个会说情话的程序员[通俗易懂]

    做一个积极的人编码、改bug、提升自己我有一个乐园,面向编程,春暖花开今天520,不分享技术了。分享一些动人的情话,作为程序员在工作编码的同时,也不要忘了追求人生的另一半!分享下面内容,内容整理来源网络!王小波除了作家的身份外,还是一名程序员,并且是一名很牛的程序员。值得学习!没有女朋友的可以用下面的代码我一生都在等待 直到你闯进我的世界 我只想对你说:余生请多指教…

    2022年2月28日
    37
  • php array_map与array_walk使用对比

    php array_map与array_walk使用对比

    2021年10月31日
    42

发表回复

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

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