1、JDK NIO的OP_WRITE事件处理不对,很容易发生“无限”循环的问题!
2、在网络不给力的情况下,往处于非阻塞模式下的连接上调用写方法容易导致CPU被浪费,服务器性能会陡然下降!
首先,知道JDK NIO的OP_WRITE事件何时会被触发,前提是必须在注册了Channel的I/O多路复用器上注册了OP_WRITE事件,之后该连接上:
1、Socket的缓冲区有空闲位置
2、对端关闭了该连接
3、该连接自己内部出现了错误
发生以上三个场景,都可以触发I/O多路复用器上注册的写事件。
参考博客地址:恶劣的网络环境下,Netty是如何处理写事件的?