最近學習netty源代碼,inEventLoop方法是很關鍵的地方,保證相關處理在一個線程進行。
一般線程池的實現(xiàn),都是一組線程的概念,但netty的實現(xiàn)比較特別。
EventLoopGroup里維護了一組EventLoop對象,每個對象在第一次執(zhí)行的時候登記了其thread,這樣inEventLoop就是進行判斷,當前線程是否與其對象存儲的是否是一個!
談到EventExcutorGroup和EventExcutor的關系,看起來還是復雜的,EventExcutor繼承了EventExcutorGroup,但EventExcutorGroup有維護了一組EventExcutor。我是這么理解的,EventExcutor就像是一個“光桿組長”,工作只能自己干,它沒有組員,和現(xiàn)實生活中也是非常一致的。