1.newCachedThreadPool
缓存型线程池,当提交一个线程任务先查看线程池中有没有以前建立的线程,如果有,就重复使用.如果没有,就建一个新的线程加入池中,池中线程超过TIMEOUT(TIMEOUT默认是60s)不活动,其会自动被终止移出池;
优点:可灵活的回收空闲线程。
缺点: 大量线程同时运行时,会造成系统瘫痪。
应用场景:缓存型线程池通常用于执行一些生存期很短的异步型任务。
2.newFixedThreadPool
指定工作线程数量的线程池,当提交一个线程任务先查看线程池中有没有以前建立的线程,如果有,就重复使用.如果没有,就建一个新的线程加入池中,如果新建时工作线程数量达到线程池初始最大数,则将提交的任务存入到线程池队列中;cache池和fixed 池调用的是同一个底层 池,只不过参数不同;
优点:典型且优秀的线程池,它具有线程池提高程序效率和节省创建线程时所耗的开销的优点。
缺点: 在线程池空闲时,即线程池中没有可运行任务时,它不会释放工作线程,还会占用一定的系统资源。
应用场景:针对一些很稳定很固定的正规并发线程。
3.newSingleThreadExecutor
单例线程.即只创建唯一的工作线程来执行任务,保证所有任务按照指定顺序执行,如果这个线程异常结束,会有另一个取代它,保证顺序执行,单工作线程最大的特点是可保证
顺序的执行各个任务,并且在任意给定的时间不会有多个线程是活动的。
优点:可保证顺序的执行各个任务。
缺点: 效率不高。
应用场景:需要严格顺序执行的任务。
4.newScheduleThreadPool
调度型线程池,创建一个定长的线程池,而且支持定时的以及周期性的任务执行,支持定时以及周期性任务执行。