Java常见的六种线程池、线程池-四种拒绝策略总结
一、线程池的四种拒绝策略:
-
CallerRunsPolicy - 当触发拒绝策略,只要线程池没有关闭的话,则使用调用线程直接运行任务。 一般并发比较小,性能要求不高,不允许失败。 但是,由于调用者自己运行任务,如果任务提交速度过快,可能导致程序阻塞,性能效率上必然的损失较大 AbortPolicy - 丢弃任务,并抛出拒绝执行 RejectedExecutionException 异常信息。 线程池默认的拒绝策略。 必须处理好抛出的异常,否则会打断当前的执行流程,影响后续的任务执行。 DiscardPolicy - 直接丢弃,其他啥都没有 DiscardOldestPolicy - 当触发拒绝策略,只要线程池没有关闭的话,丢弃阻塞队列 workQueue 中最老的一个任务,并将新任务加入
二、Java中的六种线程池
-
ThreadPoolExecutor的类图,以及Executors的主要方法
下一篇:
mybatis一级缓存和二级缓存的区别?