`
deepnighttwo
  • 浏览: 50048 次
  • 性别: 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简介.pdf

    主题JAVANIO简介知识点.pdf

    主题JAVANIO简介知识点.pdf

    javasnmp源码-nio-learn:JavaNIO使用示例,NIO的使用,TCP,UDP的简单示例

    NIO java nio 简介 Java NIO(New IO)是用于Java(来自Java 1.4)的替代IO API,意味着替代标准 Java IO和Java Networking API。 Java NIO提供了与原来IO API不同的工作方式,但是作用和目的是一样的。 NIO支持面向...

    Java NIO Selector选择器简介.pdf

    java NIO Selector选择器简介.pdf

    java nio 中文版

    第一章 简介 第二章 缓冲区 第三章 通道 第四章 选择器 第五章 正则表达式 第六章 字符集 --------------------- 作者:仓鼠洞 来源:CSDN 原文:...

    java网络编程NIO视频教程

    01-Java NIO-课程简介.mp4 02-Java NIO-概述.mp4 03-Java NIO-Channel-概述.mp4 04-Java NIO-Channel-FileChannel(介绍和示例).mp4 05-Java NIO-Channel-FileChannel详解(一).mp4 06-Java NIO-Channel-FileChannel...

    java7源码-java-nio-master:Java

    NIO简介: Java NIO 是 java 1.4, 之后新出的一套IO接口NIO中的N可以理解为Non-blocking,不单纯是New。 NIO的特性/NIO与IO区别: 1)IO是面向流的,NIO是面向缓冲区的; 2)IO流是阻塞的,NIO流是不阻塞的; 3)NIO有选择...

    Java视频教程 Java游戏服务器端开发 Netty NIO AIO Mina视频教程

    [第1节] Java NIO流-简介和概述.flv [第2节] Java NIO流-缓冲区.flv [第3节] Java NIO流-缓冲区操作.flv [第4节] JavaNIO流-通道1.flv [第5节] Java NIO流-通道2.flv [第6节] Java NIO流-socket通道操作.flv ...

    Java NIO实战开发多人聊天室

    01-Java NIO-课程简介.mp4 05-Java NIO-Channel-FileChannel详解(一).mp4 06-Java NIO-Channel-FileChannel详解(二).mp4 08-Java NIO-Channel-ServerSocketChannel.mp4 09-Java NIO-Channel-SocketChannel.mp4 ...

    java_nio.rar_java nio

    java nio的简介,写的不错 ,有兴趣的朋友可以下载看看

    SpikeFJ#myBlog#JavaNio-简介1

    一.简介相比CPU优化,IO性能 优化的投入比更为可观JVM字节码的运行速率已接近本地执行,cpu已不再是束缚JVM并非真的受IO束缚,操作系统兵分不能快速传递

    Java NIO与IO的差别和比较

    本文将通过一些实例来简介NIO库提供的一些新特性:非堵塞I/O,字符转换,缓冲以及通道。  一. 介绍NIO  NIO包(java.nio.*)引入了四个关键的抽象数据类型,它们共同解决传统的I/O类中的一些问题。  1. ...

    JavaNIO想详解1

    本文中的源代码可以在此处下载,下载链接为:http://115.com/file/cltlj10i#nio-src.zip本文简介: JDK 1.4 中引入的

    Java 网络IO简介

    Java 网络IO简介: bio nio aio

    Naga-Socket:Naga-Socket - Java 简单套接字

    娜迦 简化的 Java NIO 异步套接字 ...Naga 不是一个框架。 Naga 的目标是成为一个非常小的 NIO 库,它提供了一些 java 类来用异步 NIO 对应物(类似于为 Java 1.7 计划的 NIO2)包装通常的 Socket... 简介 这个例子展示了

    Xmemcached测试实例

    XMemcached简介: XMemcached是基于 java nio的Memcached客户端,java nio相比于传统阻塞 io 模型来说,有 效率高(特别在高并发下)和资源耗费相对较少的优点。传统阻塞 IO为了提高效率,需要 创建一定数量的连接...

    netty简介ppt

    netty简介ppt,java NIO介绍便于了解和介绍,为什么要50个字节???

    高清Netty5.0架构剖析和源码解读

    业界主流的NIO框架介绍10 2.NIO入门10 2.1. NIO服务端10 2.2. NIO客户端13 3.Netty源码分析16 3.1. 服务端创建16 3.1.1. 服务端启动辅助类ServerBootstrap16 3.1.2. NioServerSocketChannel 的注册21 3.1.3. 新的...

    getty:一个完全基于java的,类似netty的高性能网络框架A fully Java-based, netty - like high-performance networking framework

    简介 brief introduction 1、getty是完全基于java nio封装的高性能网络框架。 Getty is a high-performance networking framework based entirely on Java NIO encapsulation. 2、getty可在项目中使用,也可以用于...

Global site tag (gtag.js) - Google Analytics