美文网首页
OP_WRITE 笔记-转发

OP_WRITE 笔记-转发

作者: 浪子_byte | 来源:发表于2019-04-24 15:05 被阅读0次

    转发地址: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事件,即表示通道这个时候可用,才会把数据写到缓冲区。

    相关文章

      网友评论

          本文标题:OP_WRITE 笔记-转发

          本文链接:https://www.haomeiwen.com/subject/ygsggqtx.html