java线程池拒绝策略new ThreadPoolExecutor.CallerRunsPolicy()
时间: 2023-10-17 08:00:19 浏览: 150
线程池ThreadPoolExecutor
5星 · 资源好评率100%
Java线程池中的拒绝策略是指当任务队列已满并且线程池中的线程已经达到最大数量时,新的任务无法继续提交时所采取的策略。在这种情况下,拒绝策略将决定如何处理这些无法处理的任务。
ThreadPoolExecutor类中有四种拒绝策略可供选择,其中一种是CallerRunsPolicy。这个策略会直接在提交任务的线程中运行该任务,也就是说,如果任务无法被线程池接受,它将在提交任务的线程中运行,由提交任务的线程来执行该任务。
这种拒绝策略的优点在于,它可以保证所有的任务都能被执行,因为最终都会由提交任务的线程来执行。但是它也有缺点,因为如果线程池不能接受新任务,那么提交任务的线程必须等待之前提交的任务完成后才能执行新的任务,这可能会导致提交任务的线程被阻塞。
阅读全文