默认核心线程数不会被清除。keepAliveTime对核心线程数不起作用
- keepAliveTime:表示线程没有任务执行时最多保持多久时间会终止。
- 默认情况下, 只有当线程池中的线程数大于corePoolSize时,keepAliveTime才会起作用,直到线程池中的线程数不大于corePoolSize,即当线程池中的线程数大于corePoolSize时,如果一个线程空闲的时间达到keepAliveTime,则会终止,直到线程池中的线程数不超过corePoolSize。
- 但是如果调用了allowCoreThreadTimeOut(boolean)方法,在线程池中的线程数不大于corePoolSize时,keepAliveTime参数也会起作用,直到线程池中的线程数为0;
- allowCoreThreadTimeOut默认是false,即核心线程不会超时关闭,除非手动关闭线程池才会销毁线程
- allowCoreThreadTimeOut设置为true,线程空闲的时间达到keepAliveTime,核心线程数的线程会被全部关闭。