`
deepnighttwo
  • 浏览: 52138 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

nio简介

 
阅读更多

nio简介


nio的Socket编程中改变最大的是服务器端,客户端可以没有什么变化。目的是增加服务器吞吐量和并行处理客户端请求的能力,改变服务器端阻塞的模型。其设计上采用了Observer模式,使用事件触发机制进行io并行处理。
ByteBuffer:封装了一个byte[],作为数据载体。
ServerSocketChannel:服务器套接字通道通过其工厂方法ServerSocketChannel.open()获得实例,下面这行代码将其设置为非阻塞模式ssc.configureBlocking(false)。然后就可以通过ssc.socket()来建立一个ServerSocket,这个ServerSocket的accept方法是马上返回不阻塞的。但是在真正的连接建立起来之前,任何对数据的读写操作都会触发异常。
Selector:nio观察者和非阻塞模式下最重要的概念之一,通过工厂方法Selector.open()创建实例,然后通过ssc.register(selector, SelectionKey.OP_ACCEPT);将ssc与socket进行关联,这样,就由selector监听网络事件,事件发生时(如一个连接建立,数据读取到了等),select就会按照类别将事件分类,创建相应的SelectionKey的集合,然后通知注册在该selector的实例的集合,让阻塞的方法继续执行。服务器端工作模式如下:

niosocket.JPG


注意在上图中,来自相应颜色的Client的请求经过selector的处理后还是使用相同颜色标识,原本两个红色的请求是连续发送过来的,比如分别是连接建立和传过来数据,但是经过selectot后,连续的请求被砍断成一个个类型不同的请求并发送给server,因为selector的预处理,一个Client不会长期占用server,server在处理client的切换速度更快,这样就提高了server的相应速度,也就提高了server的吞吐量。


分享到:
评论

相关推荐

    NIO简介.dps

    公司技术分享的PPT NIO简介,公司技术分享的PPT NIO简介,

    JAVANIO简介.pdf

    ### JAVANIO简介 #### 一、基本概念与传统IO 在计算机科学领域中,**IO(Input/Output)**是指主存与外部设备(如硬盘、终端、网络等)之间传输数据的过程。它是操作系统的一项核心功能,通过专用的I/O指令来实现。...

    主题JAVANIO简介知识点.pdf

    ### 主题JAVANIO简介知识点 #### 一、基本概念与Java标准IO回顾 **基本概念** 在计算机科学中,I/O(Input/Output,输入/输出)是指主存和外部设备(如硬盘、终端、网络等)之间拷贝数据的过程。I/O操作是操作...

    java NIO 简介(中文)

    java NIO 简介(中文)内容清晰; 第一章 简介 .......................................................................................................................... 10 1.1 I/O 与 CPU 时间的比较 .......

    java nio 包读取超大数据文件

    #### 一、Java NIO简介 Java NIO(New IO)是Java平台上的新输入/输出流API,它提供了与传统IO(即Java IO)不同的数据处理方式。NIO在Java 1.4版本引入,并在后续版本中得到了进一步增强和完善。相较于传统的Java ...

    用NIO解析modbus协议

    **NIO简介:** Java的NIO库是在Java 1.4版本中引入的,它提供了与传统阻塞I/O(BIO)不同的I/O操作方式。NIO的核心组件包括通道(Channels)、缓冲区(Buffers)和选择器(Selectors)。通道代表数据源或目的地,...

    NIO处理大文件

    1. NIO简介: NIO是Java 1.4引入的新特性,它提供了一种不同于传统IO的I/O操作方式。NIO的核心组件包括通道(Channels)、缓冲区(Buffers)和选择器(Selectors)。通道负责数据的读写,缓冲区用于存储数据,选择...

    使用Java_NIO编写高性能的服务器.doc

    - **NIO简介**:NIO(New IO)自JDK 1.4引入以来,为Java提供了非阻塞IO的支持,这对于提高服务端应用的性能至关重要。NIO的核心特性包括缓冲区(Buffer)、通道(Channel)和选择器(Selector)。 - **非阻塞IO**:非...

    Android开发进阶之NIO非阻塞包

    **NIO简介**:NIO是一种基于通道(Channel)与缓冲区(Buffer)的I/O操作方式,相比于传统的BIO(Blocking I/O),它最大的特点是支持非阻塞模式,即应用程序在进行I/O操作时不会被阻塞,这极大地提高了系统的并发处理...

    JavaNio视频下载_百度云盘资源

    ### Java NIO简介 Java NIO(New Input/Output),即新输入输出,是Java 1.4版本引入的一个新的API,它提供了与传统Java IO不同的操作方式。Java NIO的主要组成部分包括Buffer、Channel、Selector等,这些组件为...

    Java.nio 与Java.io比较

    ### Java.nio简介 Java.nio(New I/O)是Java 1.4版本引入的一个新框架,旨在提供更高效的I/O操作,特别是在大数据量处理和网络通信方面。它引入了基于通道和缓冲区的新模型,这与传统的流模型有所不同。通道是双向...

    JAVA NIO学习笔记.docx

    3. **NIO简介** NIO引入了新的API,其主要特点是: - **Buffer**:提供了一种存储和操作数据的高效方式,可以缓存数据,支持各种数据类型,如`ByteBuffer`、`CharBuffer`等。 - **Channel**:作为数据源或目的地...

    【项目实战】Netty源码剖析&NIO;+Netty5各种RPC架构实战演练三部曲视频教程(未加密)

    #### 二、Java NIO简介 Java NIO(New IO)是Java SE 1.4中的新特性,旨在提高Java在处理大量并发连接时的性能。相比于传统的阻塞I/O,NIO采用了基于缓冲区和通道的非阻塞模式,减少了线程的开销,并提高了系统的...

    使用Java NIO编写高性能的服务器.doc

    【Java NIO简介】 Java NIO(New IO)是从JDK 1.4开始引入的一个新特性,它提供了一种不同于传统IO流的非阻塞I/O操作方式。NIO的核心在于它允许应用程序选择非阻塞的方式进行读写操作,从而提高了服务器处理大量并发...

    Java8新特性&Shiro&NIO&Redis分享

    #### NIO简介 NIO (New IO) 是Java SE 1.4及后续版本提供的新的IO API,可以替代标准的Java IO API。NIO提供了与标准IO不同的IO工作方式。 - **核心组件**: - **Buffer**:数据容器,用于存储数据。 - **Channel...

    Android-LightKV是基于JavaNIO的轻量级高性能高可靠的key-value存储组件

    Java NIO简介** Java NIO(New Input/Output)是Java 1.4引入的一个新特性,它提供了与传统Java I/O API不同的方式来处理I/O操作。NIO的核心在于通道(Channel)和缓冲区(Buffer),相比于传统的流模型,NIO允许...

Global site tag (gtag.js) - Google Analytics