线程池
线程池: jdk 1.8 新增newWorkStealingPool 线程池,适合非常耗时的场景 jdk 1.8 以前 的线程池newSingleThreadPool、newFixedThreadPool、newCachedThreadPool、newScheduledThreadPool 创建线程池 ExecutorService executorService = Executors.newSingleThreadExecutor(); 用Executors 来创建 创建单核心的线程池 newSingleThreadExecutor() 创建一个无解队列的线程池,如果线程崩溃会重新创建一个,直到任务完成。 线程池参数: corePoolSize : 表示线程池核心线程数,当初始化线程池时,会创建核心线程进入等待状态,即使它是空闲的,核心线程也不会被摧毁,从而降低了任务一来时要创建新线程的时间和性能开销。 maximumPoolSize : 表示最大线程数,意味着核心线程数都被用完了,那只能重新创建新的线程来执行任务,但是前提是不能超过最大线程数量,否则该任务只能进入阻塞队列进行排队等候,直到有线程空闲了,才能继续执行任务。 keepAliveTime : 表示线程存活时间,除了核心线程外,那些被新创建出来的线程可以存活多久。意味着,这些新的线程一但完成任务,而后面都是空闲状态时