OP_WRITE 笔记-转发

转发地址:https://www.jianshu.com/p/9978a80d5ab7

-若当前TCP发送缓冲区已满,则将OP_WRITE添加到ch.selectionKey.interestOps中,等待TCP发送缓冲队列可写时重新触发write操作;
-若当前TCP发送缓冲区未满,构造一个flush()事件,等待EventLoop的下一个循环重新检测ChannelOutboundBuffer中有无待flush的数据。

SelectionKey.OP_WRITE用在NIO通道不可写的时候设置,然后呢,后续所有的写操作都判断当前是否设置了SelectionKey.OP_WRITE,如果有设置,说明通道目前还不可用,本次就不会往通道写数据,因为即使写,也会失败,直到在selector上轮询到SelectionKey.OP_WRITE事件,即表示通道这个时候可用,才会把数据写到缓冲区。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。