2、ThreadPoolExcutor 运行参数有哪些,平时使用 Executors 下封装过的线程池有什么风 险吗?
时间: 2024-06-05 07:07:35 浏览: 7
好的,我明白了。关于您的问题,ThreadPoolExecutor 运行参数有核心线程数、最大线程数、线程空闲时间、工作队列类型、拒绝策略等等。使用 Executors 下封装过的线程池存在一些风险,比如默认情况下会创建无限数量的线程来处理任务,可能会导致线程数过多,从而影响系统性能。此外,对于一些需要高度定制化的场景,可能需要手动创建且配置线程池才能满足需求。
相关问题
ThreadPoolExecutor线程池有哪些参数?
ThreadPoolExecutor线程池有以下参数:
1. corePoolSize:核心线程数,即线程池中始终保持的线程数,即使它们处于空闲状态也不会被回收。
2. maximumPoolSize:最大线程数,即线程池中允许存在的最大线程数,包括空闲线程和阻塞队列中等待的线程。
3. keepAliveTime:线程空闲时间,即当线程池中的线程数量大于核心线程数时,空闲线程的存活时间。
4. TimeUnit:时间单位,用于指定keepAliveTime参数的时间单位。
5. workQueue:工作队列,用于存放等待执行的任务,可以选择不同类型的队列,如ArrayBlockingQueue、LinkedBlockingQueue、SynchronousQueue等。
6. ThreadFactory:线程工厂,用于创建线程,默认情况下使用Executors.defaultThreadFactory()方法创建线程。
7. RejectedExecutionHandler:拒绝策略,用于处理无法执行的任务,默认情况下使用AbortPolicy策略,即抛出RejectedExecutionException异常。其他策略还包括DiscardPolicy、DiscardOldestPolicy和CallerRunsPolicy。
为什么需要线程池?有几种创建线程池的方式?
线程池的出现主要是为了解决频繁创建和销毁线程所带来的性能开销问题。线程池可以复用线程,避免了线程的重复创建和销毁,从而提高了程序的性能。此外,线程池还可以控制线程的数量,避免因为创建线程过多而导致的内存溢出问题,并且提供了任务管理的功能,可以实现任务缓存和任务拒绝的情况。线程池的创建方式有两种:通过ThreadPoolExecutor创建的线程池和通过Executors创建的线程池。其中,通过ThreadPoolExecutor创建的线程池可以自定义线程池的各种参数,而通过Executors创建的线程池则提供了一些常用的线程池类型,如FixedThreadPool、CachedThreadPool等。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)