最近学习netty源代码,inEventLoop方法是很关键的地方,保证相关处理在一个线程进行。
一般线程池的实现,都是一组线程的概念,但netty的实现比较特别。
EventLoopGroup里维护了一组EventLoop对象,每个对象在第一次执行的时候登记了其thread,这样inEventLoop就是进行判断,当前线程是否与其对象存储的是否是一个!
谈到EventExcutorGroup和EventExcutor的关系,看起来还是复杂的,EventExcutor继承了EventExcutorGroup,但EventExcutorGroup有维护了一组EventExcutor。我是这么理解的,EventExcutor就像是一个“光杆组长”,工作只能自己干,它没有组员,和现实生活中也是非常一致的。
网友评论