线程池
线程池的作用
核心点:复用机制提前创建好固定的线程一直在运行状态实现复用限制线程创建数量。
1.降低资源消耗:通过池化技术重复利用已创建的线程,降低线程创建和销毁造成的损耗。
2.提高响应速度:任务到达时,无需等待线程创建即可立即执行。
3.提高线程的可管理性:线程是稀缺资源,如果无限制创建,个仅会泪R系沉贡源,贮云公为线程的不合理分布导致资源调度失衡,降低系统的稳定性。使用线程池可以进行统一的分
配、调优和监控。
4.提供更多更强大的功能:线程池具备可拓展性,允许开发人员向其中增加更多的功能。比如延时定时线程池ScheduledThreadPoolExecutor,就允许任务延期执行或定期执行。
线程池创建方式
Executors.newCachedThreadPool();可缓存线程池
Executors.newFixedThreadPool();可定长度
Executors.newScheduledThreadPool() ;可定时
Executors.newSingleThreadExecutor();单例
这4种方式底层是用无界缓存我们的队列的,可能会发生线程池溢出
public class Test005 {public static void main(String[] args) {//
// ExecutorService executorService = Executors.newCachedThreadPool();ExecutorService executorService = Executors.newFixedThreadPool(2);for (int i = 0; i < 10; i++) {final int finalI = i;executorService.execute(new Runnable() {@Overridepublic void run() {System.out.println(Thread.currentThread().getName() + "," + finalI);}});}}
}