JAVA语言5创建线程池的几个API操作以及区别讲解
小标 2018-09-11 来源 : 阅读 1598 评论 0

摘要:本文主要向大家介绍了JAVA语言5创建线程池的几个API操作以及区别讲解,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

本文主要向大家介绍了JAVA语言5创建线程池的几个API操作以及区别讲解,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

newCachedThreadPool();
newCachedThreadPool(ThreadFactory factory);
创建一个可根据需要创建新线程的线程池,但是在之前构造的线程可用时将重用它们。对于执行很多短期异步任务的程序而言,这些线程池通常可提高程序性能。调用 execute 将重用之前构造的线程(如果线程可用)。如果现有线程没有可用的,则创建一个新线程并添加到池中。终止并从缓存中移除那些已有 60 秒钟未被使用的线程。因此,长时间保持空闲的线程池不会使用任何资源。注意,可以使用 ThreadPoolExecutor 构造方法创建具有类似属性但细节不同(例如超时参数)的线程池。
newFixedThreadPool(int nThreads);
newFixedThreadPool(int nThreads,ThreadFactory threadFactory);
创建一个可重用固定线程数的线程池,以共享的无界队列方式来运行这些线程,在需要时使用提供的 ThreadFactory 创建新线程。在任意点,在大多数 nThreads 线程会处于处理任务的活动状态。如果在所有线程处于活动状态时提交附加任务,则在有可用线程之前,附加任务将在队列中等待。如果在关闭前的执行期间由于失败而导致任何线程终止,那么一个新线程将代替它执行后续的任务(如果需要)。在某个线程被显式地关闭之前,池中的线程将一直存在。
newScheduledThreadPool(int nThreads);
newScheduledThreadPool(int nThreads,ThreadFactory threadFactory);
使用给定核心池大小创建一个新 ScheduledThreadPoolExecutor。该线程池的特性就是能够指定 初始延迟 、固定频率、固定延迟。来执行一个线程。返回的对象为ScheduledExecuteService,增加了定时器的操作,有以下几个方法: 
 ScheduledFuture :schedule(Callablecallable, longdelay, TimeUnitunit) 创建并执行在给定延迟后启用的 ScheduledFuture。
ScheduledFuture:schedule(Runnablecommand, longdelay, TimeUnitunit) 创建并执行在给定延迟后启用的一次性操作。
ScheduledFuture:scheduleAtFixedRate(Runnablecommand, longinitialDelay, longperiod, TimeUnitunit) 创建并执行一个在给定初始延迟后首次启用的定期操作,后续操作具有给定的周期;也就是将在 initialDelay 后开始执行,然后在 initialDelay+period 后执行,接着在 initialDelay + 2 * period 后执行,依此类推。
ScheduledFuture:scheduleWithFixedDelay(Runnablecommand, longinitialDelay, longdelay, TimeUnitunit) 创建并执行一个在给定初始延迟后首次启用的定期操作,随后,在每一次执行终止和下一次执行开始之间都存在给定的延迟。
newSingleThreadExecutor();
newSingleThreadExecutor(ThreadFactory factory);
创建一个使用单个 worker 线程的 Executor,以无界队列方式来运行该线程。单线程池的好处就是:如果线程在任务执行完之前被系统杀死,在线程结束之前,该线程池会创建一个新的线程来代替其执行任务。可保证顺序地执行各个任务,并且在任意给定的时间不会有多个线程是活动的。与其他等效的 newFixedThreadPool(1) 不同,可保证无需重新配置此方法所返回的执行程序即可使用其他的线程。    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved