线程池介绍
线程池(Thread Pool):把一个或多个线程通过统一的方式进行调度和重复使用的技术,避免了因为线程过多而带来使用上的开销。
为什么要使用线程池?
-
可重复使用已有线程,避免对象创建、消亡和过度切换的性能开销。
-
避免创建大量同类线程所导致的资源过度竞争和内存溢出的问题。
-
支持更多功能,比如延迟任务线程池(newScheduledThreadPool)和缓存线程池(newCachedThreadPool)等。
线程池使用
创建线程池有两种方式:ThreadPoolExecutor 和 Executors,其中 Executors 又可以创建 6 种不同的线程池类型,会在下节讲,本节重点来看看 ThreadPoolExecutor 的使用。
ThreadPoolExecutor 的使用
线程池使用代码如下:
ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(2, 10, 10L, TimeUnit.SECONDS, new LinkedBlockingQueue(100));
threadPoolExecutor.execute(new Runnable() {
@Override

本文介绍了Java线程池的概念,解释了为何使用线程池,详细讲解了ThreadPoolExecutor的构造参数及其意义,包括核心线程数、最大线程数、超时时间和拒绝策略等。此外,还对比了execute()和submit()的区别,并列举了相关面试题,帮助读者深入理解线程池的工作原理和使用技巧。
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



