线程池里的参数有哪些?
七个参数:
corePoolSize:线程的核心线程数。默认情况下,核心线程数会在线程中一直存活。
maximumPoolSize:线程池所能容纳的最大线程数。当活动线程数达到这个数值后,后续的新任务将会被阻塞。
keepAliveTime:保持存活的时间。非核心线程闲置时的超时时长,超过这个时长,非核心线程就会被回收。
unit:用于指定keepAliveTime参数的时间单位。
workQueue(kun):线程队列。线程池中的任务队列。
threadFactory:线程工厂,为线程池提供创建新线程的功能。
handler:饱和策略,无法执行的任务的处理程。
JDK给我们提供的常用线程池–在什么时候用(怎么创建线程池)
常见的四个线程池:
Executors. newFixedThreadPool():创建固定线程数的线程池,其中的线程都是核心线程,不会被回收。
Executors. newScheduledThreadPool():创建定时线程池,这个线程适合执行定时任务。
Executors. newCachedThreadPool():创建缓存线程池,这个线程池的一般用来执行大量的低耗时任务。
Executors. newSingleThreadExecutor():创建单一线程池,该线程池的线程是按照一定的顺序一个个执行的。