线程池是一种常见的多线程管理机制,可以提高程序的并发处理能力。在线程池中,有一些核心参数需要设置,包括:
- 核心线程数:线程池中一开始就创建的线程数量,即使这些线程处于空闲状态,也不会被回收。
- 最大线程数:线程池中能够容纳的最大线程数量,包括空闲和活动线程。
- 队列容量:线程池中任务队列的最大容量,当任务数量超过队列容量时,新任务将被拒绝。
除了核心参数外,线程池还有一些常见的饱和策略(即当任务无法处理时,线程池采取的策略),包括:
- 直接抛出异常:当任务无法处理时,直接抛出异常,通知调用者任务未能成功提交。
- 调用者运行:当任务无法处理时,将任务交给提交任务的线程执行,相当于同步执行。
- 丢弃任务:当任务无法处理时,直接丢弃任务,不做任何处理。
- 丢弃最老的任务:当任务无法处理时,将队列中最老的任务丢弃,然后尝试重新提交任务。
- 自定义策略:根据实际需求自定义饱和策略,例如记录日志、重试等。