传统IO处理的三点弊端:
1.服务端出现大量的线程与客户端通信,因为服务端的 线程数量是有限的,毕竟线程也是一种资源;
2. 线程在进行上下文切换的时候一定是有开销的,如果大量的线程进行上下文切换的话那开销将会是很巨大的;
3.在客户端与服务端建立连接之后,如果客户端发送完数据之后没有在发送了,但是连接是一直存在的,这样就白白浪费了系统资源。
正因为传统IO处理的各种弊端,所以引申出了Reactor模式。
在nio中我们处理逻辑的时候没有提供事件处理器,需要我们自己写回调方法。
在netty中就提供了事件处理器以及相关回调方法
channelRead0()方法 就是上面所提到的相关回调方法,所以说channelRead0()是被Initiation Dispatcher所调用的。
这样的话问题就出现了,因为回调方法是由Initiation Dispatcher方法来调用的话,如果channelRead0()方法执行时间长的话,会阻塞Initiation Dispatcher。