Java NIO(三)概念

Java NIO consist of the following core components:

  • Channels
  • Buffers
  • Selectors
    Java NIO有比这些更多的类和组件,但在我看来,Channel,Buffer和Selector是API的核心。 其余的组件,如Pipe和FileLock只是实用程序类,要与三个核心组件结合使用。 因此,我将在这个NIO概述中关注这三个组件。

Channels and Buffers

通常,NIO中的所有IO都以一个通道开始。 channel有点像流。 通道(channel)数据可以被读入一个缓冲区。 数据也可以从缓冲区写入通道。 这是一个例子:


img_ba76486545ee41994605dd9102bc621e.png
Channels and Buffers.png

有几个通道和缓冲区类型。 以下是Java NIO中通道(channel)主要实现的列表:

  • FileChannel
  • DatagramChannel
  • SocketChannel
  • ServerSocketChannel
    正如您所看到的,这些通道涵盖UDP + TCP网络IO和文件IO。

以下是Java NIO中的核心缓冲区实现列表:

  • ByteBuffer
  • CharBuffer
  • DoubleBuffer
  • FloatBuffer
  • IntBuffer
  • LongBuffer
  • ShortBuffer
    这些缓冲区涵盖了您可以通过IO发送的基本数据类型:byte, short, int, long, float, double and characters.

Selectors

选择器允许单个线程处理多个通道。 如果您的应用程序有多个连接(通道)打开,但每个连接只有较低的通信量,则这很方便。 例如,在一个聊天服务器。

下面是一个使用Selector处理3个Channel的线程的例子:


img_31c914f1dea54651d7af61ff9e3f279f.png
Selectors.png

要使用selector,您需要注册channel。 然后你调用它的select()方法。 此方法将阻塞,直到有一个事件准备好注册的频道之一。 一旦方法返回,线程就可以处理这些事件。 事件的例子是传入的连接,收到的数据等

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/650364

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。