线程池ThreadPoolExecutor

1.JDK5提供3种并发:

1)并发框架Executor
2)并发集合类型如ConcurrentHashMap
3)并发控制类如CountDownLatch
推荐使用并发框架Executor

2.线程池的有点

1)重用线程,减少线程创建、消亡的开销;
2)可有效控制最大并发线程数,提高系统资源的使用率,同时避免资源竞争和请求阻塞;
3)提供定时执行、周期执行、单线程、并发数控制等功能;

3.并发框架Executor类型

线程池有Executor工厂提供不同类型的实例化对象,但使用统一接口ExecutorService,ExecutorService 是一个接口扩展了Executor类;

Executor工厂类可产生如下4中不同类型的线程池:
1)Executor.newSingleThreadExecutor
单例线程池,表示任意时间段内,线程池中只有一个线程在工作,拥有无限长队列;

2)Executor.newCacheThreadPool
缓存线程池,先查看线程池中是否有当前执行线程的缓存,如果有就reuse,如果没有则创建,并且只能完成一些生存期很短的任务。能复用的线程,其空闲时间不能超过60s,一旦超过就会被移除

3)Executor.newFixedThreadPool
固定型线程池。该线程池规定了线程的最大数,当线程有空闲时,线程可以被复用,任务可以被执行,但所有线程均忙时,任务需要等待;

4)Executor.newScheduledThreadPool
调度型线程池,会根据Scheduled(任务表)进行延迟执行、周期执行

你可能感兴趣的:(线程池ThreadPoolExecutor)