前言:其实掌握Netty的源码不难,关键是掌握几个点,本文介绍其中一个,parentGroup线程在哪启动?
流程1:AbstractChannel.register(EventLoop eventLoop, final ChannelPromise promise)方法
流程2:SingleThreadEventExecutor.execute(Runnable task)方法
流程3:SingleThreadEventExecutor.startThread()方法
流程4:SingleThreadEventExecutor.doStartThread()方法
流程5:ThreadPerTaskExecutor.execute(Runnable command)方法
回头看EventLoop究竟执行的Runnable的什么
1、
2、NioEventLoop.run(),兜兜转转又回到原点
总结:
NioEventLoop的线程任务是for(;;)