ThreadPoolExecutor有哪些配置参数?
时间: 2024-06-08 14:03:58 浏览: 151
ThreadPoolExecutor是Java并发工具包中的一个重要类,用于执行可重用线程池任务。它有多个可配置的参数,这些参数可以帮助你定制线程池的行为。以下是几个主要的配置参数:
1. **核心线程数(corePoolSize)**:线程池在开始时就创建的核心线程数量。即使没有任务需要执行,这些线程也会一直存在。
2. **最大线程数(maximumPoolSize)**:线程池能够创建的最大线程数。超过这个限制时,除非任务队列为空,否则新任务将被拒绝。
3. **任务队列(workQueue)**:存储待执行任务的容器。常用的有`LinkedBlockingQueue`(默认)和`ArrayBlockingQueue`。你可以自定义这个队列,如使用优先级队列。
4. **线程工厂(threadFactory)**:用于创建新线程的工厂,可以用来设置线程的名字或属性。
5. **拒绝策略(rejectionHandler)**:当工作队列已满且无法接受新任务时,处理策略。默认是AbortPolicy,会直接抛出异常;也可以设置为CallerRunsPolicy,让调用者处理。
6. **保持活动时间(keepAliveTime)**:当线程池达到最大线程数,并且所有核心线程都在执行任务时,多余线程等待新任务的时间。
7. **隔离策略(handler)**:当线程池因拒绝策略而拒绝新任务时,如何处理当前的任务。如`DiscardOldestPolicy`,丢弃队列中最老的任务。
8. **定时器(timer)**:用于执行定时任务,可选参数。
了解这些参数后,你可以根据你的应用需求调整线程池的行为,以达到最佳性能和资源利用。如果你有更具体的问题,比如如何选择合适的参数值,可以继续提问。
阅读全文