RejectedExecutionHandlers设计分析

2020-05-18  本文已影响0人  飞天的龙王

RejectedExecutionHandlers

netty中的执行器拒绝处理器RejectedExecutionHandler接口如下:

其有两种策略实现:

1. 默认策略

实现中是直接抛出异常。

2. 补偿策略

首先判断是否在eventLoop的io线程中。

a. 如果在其中则直接抛出异常,防止补偿阻塞IO线程正常执行任务。

b. 如果不是,则首先尝试wakeup执行器,尽量让其消费queue中的任务。然后阻塞等待指定时间后,调用offerTask将任务再次尝试添加到执行器中,成功则立刻返回,否则走入下一步抛出异常。

上一篇 下一篇

猜你喜欢

热点阅读