其他
线程池 |
核心线程 |
线程池大小 |
队列策略 |
newCachedThreadPool | 0 | Integer.MAX_VALUE | |
newFixedThreadPool | 创建时可以设置参数 | 创建时可以设置参数 | |
newScheduledThreadPool | 创建时可以设置参数 | Integer.MAX_VALUE | DelayedWorkQueue |
newSingleThreadExecutor | 1 | 1 |
SynchronousQueue : 直接提交,也就是所有任务不进入队列去等待。此时线程数小于核心线程就增加,多于或等于核心线程数时,还是增加线程,最大为线程池中的最大允许。超出就拒绝。
LinkedBlockingQueue:无界队列 此时超过核心线程后的任务全部加入队列等待,系统最多只能运行核心线程数量的线程。这种方法相当于控制了并发的线程数量。
DelayedWorkQueue:如果不是重复的任务,那任务从 DelayedWorkQueue 取出之后执行完了就结束了。如果是重复的任务,那在执行结束前会重置执行时间并将自己重新加入到DelayedWorkQueue中。