做用:建立一个可根据须要建立新线程的线程池,可是在之前构造的线程可用时将重用它们,并在须要时使用提供的 ThreadFactory 建立新线程。缓存
特征:
(1)线程池中数量没有固定,可达到最大值(Interger. MAX_VALUE)
(2)线程池中的线程可进行缓存重复利用和回收(回收默认时间为1分钟)
(3)当线程池中,没有可用线程,会从新建立一个线程并发
建立方式: Executors.newCachedThreadPool();线程
做用:建立一个可重用固定线程数的线程池,以共享的无界队列方式来运行这些线程。在任意点,在大多数 nThreads 线程会处于处理任务的活动状态。若是在全部线程处于活动状态时提交附加任务,则在有可用线程以前,附加任务将在队列中等待。若是在关闭前的执行期间因为失败而致使任何线程终止,那么一个新线程将代替它执行后续的任务(若是须要)。在某个线程被显式地关闭以前,池中的线程将一直存在。队列
特征:
(1)线程池中的线程处于必定的量,能够很好的控制线程的并发量
(2)线程能够重复被使用,在显示关闭以前,都将一直存在
(3)超出必定量的线程被提交时候需在队列中等待thread
建立方式:
(1)Executors.newFixedThreadPool(int nThreads);//nThreads为线程的数量
(2)Executors.newFixedThreadPool(int nThreads,ThreadFactory threadFactory);//nThreads为线程的数量,threadFactory建立线程的工厂方式配置
做用:建立一个使用单个 worker 线程的 Executor,以无界队列方式来运行该线程。(注意,若是由于在关闭前的执行期间出现失败而终止了此单个线程,那么若是须要,一个新线程将代替它执行后续的任务)。可保证顺序地执行各个任务,而且在任意给定的时间不会有多个线程是活动的。与其余等效的 newFixedThreadPool(1) 不一样,可保证无需从新配置此方法所返回的执行程序便可使用其余的线程。线程池
特征:
(1)线程池中最多执行1个线程,以后提交的线程活动将会排在队列中以此执行程序
建立方式:
(1)Executors.newSingleThreadExecutor() ;
(2)Executors.newSingleThreadExecutor(ThreadFactory threadFactory);// threadFactory建立线程的工厂方式方法
做用: 建立一个线程池,它可安排在给定延迟后运行命令或者按期地执行。时间
特征:
(1)线程池中具备指定数量的线程,即使是空线程也将保留
(2)可定时或者延迟执行线程活动
建立方式:
(1)Executors.newScheduledThreadPool(int corePoolSize);// corePoolSize线程的个数
(2)newScheduledThreadPool(int corePoolSize, ThreadFactory threadFactory);// corePoolSize线程的个数,threadFactory建立线程的工厂
做用: 建立一个单线程执行程序,它可安排在给定延迟后运行命令或者按期地执行。
特征:
(1)线程池中最多执行1个线程,以后提交的线程活动将会排在队列中以此执行
(2)可定时或者延迟执行线程活动
建立方式: (1)Executors.newSingleThreadScheduledExecutor() ; (2)Executors.newSingleThreadScheduledExecutor(ThreadFactory threadFactory) ;//threadFactory建立线程的工厂