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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • RabbitMQ默认端口

    4369:epmd,RabbitMQ节点和CLI工具使用的对等发现服务5672、5671:由不带TLS和带TLS的AMQP0-9-1和1.0客户端使用25672:用于节点间和CLI工具通信(Erlang分发服务器端口),并从动态范围分配(默认情况下限制为单个端口,计算为AMQP端口+20000)。除非确实需要这些端口上的外部连接(例如,群集使用联合身份验证或在子网外部的计算机上使用CLI工具),否则这些端口不应公开。有关详细信息,请参见网络指南。35672-35682:由CLI工具..

    2022年4月5日
    161
  • C++ int与string的相互转换(含源码实现)

    C++ int与string的相互转换(含源码实现)一、int转换成stringⅠ、to_string函数c++11标准增加了全局函数std::to_string:stringto_string(intval);stringto_str

    2022年7月3日
    21
  • IntelliJ IDEA 2021.1激活教程(亲测激活至 2099 年,长期更新)

    IntelliJ IDEA 2021.1激活破解教程(亲测激活至 2099 年,长期更新)

    2021年4月12日
    91.2K
  • <C语言>如何使用C语言代码打印“心形”图案?

    <C语言>如何使用C语言代码打印“心形”图案?作者:wsg时间;2017年8月14日//版本一:单个字符的心形图案#includeintmain(void){ floata,x,y; for(y=1.5f;y>-1.5f;y-=0.1f) { for(x=-1.5f;x<1.5f;x+=0.05f) { a=x*x+y*y-1; //这里的@符号即为打印出的心形图案符号,可更

    2022年7月26日
    7
  • phpstorm激活码2021 最新破解方法

    phpstorm激活码2021 最新破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    167
  • 小草 客户端 android,小草app安卓版入口

    小草 客户端 android,小草app安卓版入口这里小编为大家提供一个非常不错的线上的看剧软件哦,这里每天都会更新一些市面上比较火爆的各种视频资源,而且更新的速度也是十分的快捷的,无需任何的花费,的大家就可以轻松的在线来观看了。整个平台为大家提供的各种服务也是十分的优质的,线上还有专业的客服人员在线为大家提供更加优质的服务哦。小草app安卓版入口的特色:1、线上的所有的视频资源内容都是有平台专业的人士为大家进行审核的,保证都是正版的内容哦;2、…

    2022年6月15日
    228

发表回复

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

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