您现在的位置是:群英 > 开发技术 > 编程语言
Java线程池的创建如何实现,有哪些方式
Admin发表于 2022-09-15 17:48:12388 次浏览
这篇文章给大家分享的是“Java线程池的创建如何实现,有哪些方式”,文中的讲解内容简单清晰,对大家认识和了解都有一定的帮助,对此感兴趣的朋友,接下来就跟随小编一起了解一下“Java线程池的创建如何实现,有哪些方式”吧。

连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用

前言

在讲述线程池的前提 先补充一下连接池的定义

连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用

可以看到其连接池的作用如下:

1. 线程池

线程池(英语:thread pool):一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度

特点:

  • 降低资源消耗: 通过重复利用已创建的线程降低线程创建和销毁造成的销耗。提高响应速度: 当任务到达时,任务可以不需要等待线程创建就能立即执行。提高线程的可管理性: 线程是稀缺资源,如果无限制的创建,不仅会销耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。

其功能为:

重用存在的线程,减少对象创建、消亡的开销可有效控制最大并发线程数,提高系统资源的使用率,同时避免过多资源竞争,避免堵塞。提供定时执行、定期执行、单线程、并发数控制等功能。

具体其架构如下所示:

2. 创建方式

一共有4种创建方式分别为一池一线程、一池n线程、一池可扩容线程、一池定时及周期线程

Executors.newFixedThreadPool(int)一池N线程,控制最大的并发数,超出的线程会在队列中等待

ExecutorService threadPool1 = Executors.newFixedThreadPool(5); //5个窗口

Executors.newSingleThreadExecutor()一池一线程

 ExecutorService threadPool2 = Executors.newSingleThreadExecutor(); //一个窗口

Executors.newCachedThreadPool()一池可扩容根据需求创建线程,可灵活回收空闲线程
执行完线程,可不用再扩建继续使用

 ExecutorService threadPool3 = Executors.newCachedThreadPool();

Executors.newScheduledThreadPool(),支持定时及周期性任务执行

//表示延迟一秒,后执行3秒
ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(5);
scheduledThreadPool.scheduleAtFixedRate(new Runnable() {
      @Override
      public void run() {
          log.info("delay 1 seconds, and excute every 3 seconds");
 
      }
}, 1, 3, TimeUnit.SECONDS);

到此这篇关于“Java线程池的创建如何实现,有哪些方式”的文章就介绍到这了,感谢各位的阅读,更多相关Java线程池的创建如何实现,有哪些方式内容,欢迎关注群英网络资讯频道,小编将为大家输出更多高质量的实用文章!

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

标签: java
相关信息推荐
2021-11-12 18:02:41 
摘要:这篇文章给大家分享的是PHP中怎样删除数组或列表指定的值的内容。小编觉得挺实用的,因此分享给大家做个参考,文中示例代码介绍的非常详细,感兴趣的朋友接下来一起跟随小编看看吧。
2022-01-11 18:40:53 
摘要:用Python怎样打印水仙花数?水仙花数也就是各位数字立方和等于该数的三位数,例如153、370、371、407这四个数就是全部的水仙花数了,那么我们用Python怎样编程呢?下文给大家分享一个示例,代码解释的很详细的,对大家学习Python有一定的帮助,感兴趣的朋友就继续往下看吧。
2022-06-01 17:37:37 
摘要:两种去除方法:1、使用rtrim()函数,语法“rtrim(数值,"0")”,可去除数值后面连续的零。2、用substr_replace(),语法“substr_replace(数值,'', -位置值)”,可从指定位置开始将零替换为空字符。
云活动
推荐内容
热门关键词
热门信息
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部