首先来看最常用的场景:
NioEventLoop的父类SingleThreadEventExecutor处理刚刚接受的任务时
这里的boolean型 inEventLoop 可能有两种情况为false:
- NioEventLoop第一次使用,因为它在实例化的过程中是没有初始化 thread这个属性的,所以thread为null,无论和哪个线程比较都不会相等。(因为NioEventLoop它此时还没有创建工作线程)
以下第一次接受任务(向Selector注册Channel的任务),boolean型 inEventLoop就会为false,就会进入创建工作线程的分支
跳转到NioEventLoop第一次创建工作线程
SingleThreadEventExecutor#startThread
在第一次创建工作线程后,工作线程的第一个要执