| 其他
线程池 |
核心线程 |
线程池大小 |
队列策略 |
| newCachedThreadPool | 0 | Integer.MAX_VALUE | |
| newFixedThreadPool | 创建时可以设置参数 | 创建时可以设置参数 | |
| newScheduledThreadPool | 创建时可以设置参数 | Integer.MAX_VALUE | DelayedWorkQueue |
| newSingleThreadExecutor | 1 | 1 |
SynchronousQueue : 直接提交,也就是所有任务不进入队列去等待。此时线程数小于核心线程就增加,多于或等于核心线程数时,还是增加线程,最大为线程池中的最大允许。超出就拒绝。
LinkedBlockingQueue:无界队列 此时超过核心线程后的任务全部加入队列等待,系统最多只能运行核心线程数量的线程。这种方法相当于控制了并发的线程数量。
DelayedWorkQueue:如果不是重复的任务,那任务从 DelayedWorkQueue 取出之后执行完了就结束了。如果是重复的任务,那在执行结束前会重置执行时间并将自己重新加入到DelayedWorkQueue中。
本文详细介绍了几种常见的线程池类型,包括 newCachedThreadPool、newFixedThreadPool、newScheduledThreadPool 和 newSingleThreadExecutor。针对每种线程池的特点进行了阐述,如核心线程数、线程池大小、队列策略等,并解释了它们的工作原理。
375

被折叠的 条评论
为什么被折叠?



