Java提供一个Executors线程池工厂类,提供5类线程类型作为ExecutorService的实例。具体可查看Java API。
newCachedThreadPool
public static ExecutorService newCachedThreadPool()
创建一个可根据需要创建新线程的线程不,但是在以前构造的线程可用时将征用它们。如果现有线程没有可用的,则创建一个新线程并添加到池中。终止并从缓存中移除那些已有60秒钟未被使用的线程。长时间保持空闲的线程池不会使用任何资源。
newFixedThreadPool
public static ExecutorService newFixedThreadPool(int nThreads)
nThreads池中的线程数
创建一个指定工作线程数量的线程池。每当提交一个任务就创建一个工作线程,如果工作线程数量达到线程池初始的最大数,则将提交的任务存入到池队列中。
newSingleThreadExecutor
public static ExecutorService newSingleThreadExecutor()
创建一个使用单个worker线程的Executor,以无界队列方式来运行该线程。可保证顺序执行各个任务,并且 在任意给定的时间不会有多个线程是活动的。
newScheduledThreadPool
public static ScheduledExecutorService newScheduledThreadPool(int corePoolSize)
corePoolSize 池中所保存的线程数,即使是空闲的也包括在内。
创建一个线程池,它可安排在给定延迟后运行命令或者定期地执行。
newSingleThreadScheduleExcutor
返回一个执行器,它在一个单独线程中调度任务。