NioEventLoop 是jdk nio多路處理實(shí)現(xiàn)同修復(fù)jdk nio的bug
1.NioEventLoop繼承SingleThreadEventLoop 重用單線(xiàn)程處理
2.NioEventLoop是組成 pool EventLoopGroup 基本單元
總之好多邊界判斷跟業(yè)務(wù)經(jīng)驗(yàn)之類(lèi)的代碼,非常煩碎
重要屬性
public final class NioEventLoop extends SingleThreadEventLoop { //綁定 selector Selector selector; //優(yōu)化過(guò)的Set集合 private SelectedSelectionKeySet selectedKeys; //引用全局 SelectorProvider private final SelectorProvider provider; /////////////////////////////////////////// //為true時(shí)執(zhí)行selector.wakeup() private final AtomicBoolean wakenUp = new AtomicBoolean(); //io任務(wù)占時(shí)比率 private volatile int ioRatio = 50; //記錄selectionKey撤銷(xiāo)次數(shù) private int cancelledKeys; //處理selector.selectNow() 標(biāo)志 private boolean needsToSelectAgain; }