做推广网站有什么,一个备案号可以放几个网站,天津网站建站模板,策划案怎么做首先#xff0c;线程池里面分为核心线程和非核心线程。
核心线程是常驻在线程池里面的工作线程#xff0c;它有两种方式初始化。
向线程池里面添加任务的时候#xff0c;被动初始化主动调用prestartAllCoreThreads方法 当线程池里面的队列满了的情况下#xff0c;为了增加…首先线程池里面分为核心线程和非核心线程。
核心线程是常驻在线程池里面的工作线程它有两种方式初始化。
向线程池里面添加任务的时候被动初始化主动调用prestartAllCoreThreads方法 当线程池里面的队列满了的情况下为了增加线程池的任务处理能力。线程池会增加非核心线程。核心线程和非核心线程的数量是在构造线程池的时候设置的也可以动态进行更改。 由于非核心线程是为了解决任务过多的时候临时增加的所以当任务处理完成后非核心线程处于空闲状态的时候就需要回收。因为所有工作线程都是从阻塞队列中去获取要执行的任务所以只要在一定时间内阻塞队列没有任何可以处理的任务那这个线程就可以结束了。 这个功能是通过阻塞队列里面的poll方法来完成的。这个方法提供了超时时间和超时时间单位这两个参数当超过指定时间没有获取到任务的时候poll方法返回null从而终止当前线程完成线程回收。 默认情况下线程池只会回收非核心线程如果希望核心线程也要回收可以设置allowCoreThreadTimeOut这个属性为true一般情况下我们不会去回收核心线程。因为线程池本身就是实现线程的复用而且这些核心线程在没有任务要处理的时候是处于阻塞状态并没有占用CPU资源。