美文网首页
JAVA NIO操作类型

JAVA NIO操作类型

作者: faunjoe | 来源:发表于2018-04-29 01:03 被阅读0次

JAVA NIO共定义了四种操作类型:OP_READ、OP_WRITE、OP_CONNECT、OP_ACCEPT,分别对应读、写、请求连接、接受连接等网络Socket操作。ServerSocketChannel和SocketChannel可以注册自己感兴趣的操作类型,当对应操作类型的就绪条件满足时OS会通知channel,下表描述各种Channel允许注册的操作类型,Y表示允许注册,N表示不允许注册,其中服务器SocketChannel指由服务器ServerSocketChannel.accept()返回的对象。


image.png

客户端请求连接,服务器端接受连接,客户端与服务器端开始相互发送消息(读写),按这个逻辑上表就容易理解。为了更深入理解,我们可以看看每个操作类型的就绪条件。


image.png

java.nio.channels.SelectionKey类定义了这四种操作类型并提供就绪判断方法:

public final boolean isReadable() {
        return (readyOps() & OP_READ) != 0;
    }
     
public final boolean isWritable() {
        return (readyOps() & OP_WRITE) != 0;
    }    
     
public final boolean isConnectable() {
        return (readyOps() & OP_CONNECT) != 0;
    }  
     
public final boolean isAcceptable() {
        return (readyOps() & OP_ACCEPT) != 0;
    }

相关文章

  • JAVA NIO操作类型

    JAVA NIO共定义了四种操作类型:OP_READ、OP_WRITE、OP_CONNECT、OP_ACCEPT,...

  • JAVA NIO SELECTOR

    JAVA SELECTOR Java NIO根据操作系统不同, 针对nio中的Selector有不同的实现java...

  • nio的演进历程

    本文说的NIO,是指操作系统层面的NIO,no blocking io,并不是指Java api层面的nio。操作...

  • note

    Java IO,NIO,NIO2 以及与操作系统,磁盘 IO NIO模型selector NIO的核心是IO线程池...

  • BIO,NIO,AIO 总结

    BIO,NIO,AIO 总结 Java 中的 BIO、NIO和 AIO 理解为是 Java 语言对操作系统的各种 ...

  • BIO,NIO,AIO 总结

    BIO,NIO,AIO 总结 Java 中的 BIO、NIO和 AIO 理解为是 Java 语言对操作系统的各种 ...

  • Java常用包的主要作用

    java.io io流相关操作java.nio 新io操作java.lang 核心功能包,线程,System,基本...

  • Files

    Java NIO的Files(java.nio.file.Files)类提供一些操作文件系统的文件的方法。本篇教程...

  • NIO基础知识

    Java NIO是java用来提高java IO操作性能。基于网上的教程和一些资料对NIO的知识进行整理和总结 缓...

  • java 和netty epoll实现

    Java NIO根据操作系统不同, 针对nio中的Selector有不同的实现: macosx:KQueueSel...

网友评论

      本文标题:JAVA NIO操作类型

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