博客
关于我
第 5-3 课:线程池——Executors + 面试题
阅读量:790 次
发布时间:2019-03-24

本文共 814 字,大约阅读时间需要 2 分钟。

线程池的创建方法在Java中一直是开发者关注的重点。除了ThreadPoolExecutor之外,Executors提供了更多灵活的线程池创建方式。本节将重点介绍Executors支持的六种线程池类型及其适用场景。

1. FixedThreadPool(n)

FixedThreadPool(n) 是一个固定大小的线程池,它允许开发者指定线程的最大数量。超出这个数量的任务将被排队等待,直到有空闲线程处理。这是控制程序最大并发数的理想选择。

2. CachedThreadPool

CachedThreadPool 是一个适合处理大量短期任务的线程池。它会根据任务数量自动创建新的线程,并尝试重复使用这些线程以提高效率。如果线程在60秒内未被使用,会被移除以释放内存资源。

3. SingleThreadExecutor

SingleThreadExecutor 创建了一个单线程线程池。它保证所有任务按顺序执行,适合处理对执行顺序有严格要求的任务。

4. ScheduledThreadPool(n)

ScheduledThreadPool(n) 是一个支持定时任务的线程池。它允许开发者在指定时间执行任务,适合处理定时性或周期性的工作。

5. SingleThreadScheduledExecutor

SingleThreadScheduledExecutor 是一个单线程的定时任务线程池,它继承了newScheduledThreadPool的功能,确保每个定时任务按顺序执行。

6. WorkStealingPool(n)

WorkStealingPool(n) 是Java 8新增的线程池创建方式。当没有指定参数时,它会根据当前机器的处理器核数创建线程池。该线程池支持并行执行,但不保证任务执行顺序。

通过了解这些线程池的特点和适用场景,开发者可以根据具体需求选择最合适的线程池实现,从而优化应用程序的性能和可靠性。

转载地址:http://ryfuk.baihongyu.com/

你可能感兴趣的文章
POJ1502(MPI Maelstrom)
查看>>
poj1568 Find the Winning Move[极大极小搜索+alpha-beta剪枝]
查看>>
poj1730 - Perfect Pth Powers(完全平方数)(水题)
查看>>
poj1753——Flip Game
查看>>
poj1936 假期计划第一水
查看>>
poj1958-汉诺四塔问题(三种方法)
查看>>
poj1988(并查集)
查看>>
POJ2007+几何+极角排序
查看>>
poj2039
查看>>
poj2135(简单的最小费用流问题)
查看>>
POJ2251
查看>>
QT界面操作1:如何跟踪鼠标位置?
查看>>
QT点击"X"按钮,调用closeEvent()函数来实现调用特定事件(附:粗略介绍QT的信号与槽的使用方法)...
查看>>
Pomelo开发中Web客户端开发API简介
查看>>
PON架构(全光网络)
查看>>
PoolingHttpClientConnectionManager原理剖析
查看>>
POP-一个点击带有放大还原的动画效果
查看>>
POP3 协议在计算机网络中的优缺点
查看>>
Portaudio笔记-WASAPI
查看>>
position:fixed失效情况
查看>>