`
jianfulove
  • 浏览: 118271 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
社区版块
存档分类
最新评论

打比方理解 NIO 中的角色

    博客分类:
  • NIO
阅读更多

打比方理解 NIO 中的角色

 

Channel 通道

 

Buffer 缓冲区

 

Selector 选择器

 

其中Channel对应以前的流,Buffer不是什么新东西,Selector是因为nio可以使用异步的非堵塞模式才加入的东西。

 

以前的流总是堵塞的,一个线程只要对它进行操作,其它操作就会被堵塞,也就相当于水管没有阀门,你伸手接水的时候,不管水到了没有,你就都只能耗在接水(流)上。

 

nio的Channel的加入,相当于增加了水龙头(有阀门),虽然一个时刻也只能接一个水管的水,但依赖轮换策略,在水量不大的时候,各个水管里流出来的水,都可以得到妥善接纳,这个关键之处就是增加了一个接水工,也就是Selector,他负责协调,也就是看哪根水管有水了的话,在当前水管的水接到一定程度的时候,就切换一下:临时关上当前水龙头,试着打开另一个水龙头(看看有没有水)。

 

当其他人需要用水的时候,不是直接去接水,而是事前提了一个水桶给接水工,这个水桶就是Buffer。也就是,其他人虽然也可能要等,但不会在现场等,而是回家等,可以做其它事去,水接满了,接水工会通知他们。

分享到:
评论

相关推荐

    深入Hotspot源码与Linux内核理解NIO与Netty线程模型.pdf

    深入Hotspot源码与Linux内核理解NIO与Netty线程模型

    Java NIO 中文 Java NIO 中文 Java NIO 中文文档

    实工作中常常遇到的 I/O 问题,并了解这些新特性如何对响应速率、可伸缩性和可靠性产生直接影 响。 NIO API 是对 1.3 版 I/O 特性的补充而非取代,因此,何时使用新的 API,何时老的 1.3 版 I/O API 更适合特定应用...

    Java NIO中文教程

    Java NIO(New IO)是 Java IO API 的替代方案(从 Java 1.4 开始), 它替代标准的 Java IO 和 Java 网络 API。 Java NIO 提供了与标准 IO 不同的 IO 工作方式。 英文原版由知名的Jenkov编写而成。原文链接:...

    java nio 中文PDF

    java nio 中文PDF,

    动态演示nio中的buffer相关操作.zip

    可以动态演示nio中buffer的相关操作,直观看到各种重要数据的变化,方便大家更好的理解nio的buffer模型

    JavaNIO中文教程1.pdf

    JavaNIO中文教程1.pdf

    深入Hotspot源码与Linux内核理解NIO与Netty线程模型.rar

    深入Hotspot源码与Linux内核理解NIO与Netty线程模型 源码讲解分析,非常详细,简单易懂

    一站式学习Java网络编程 全面理解BIO:NIO:AIO1

    一站式学习Java网络编程 全面理解BIO:NIO:AIO1

    JavaNIO chm帮助文档

    Java NIO系列教程(一) Java NIO 概述 Java NIO系列教程(二) Channel Java NIO系列教程(三) Buffer Java NIO系列教程(四) Scatter/Gather Java NIO系列教程(五) 通道之间的数据传输 Java NIO系列教程(六)...

    java NIO 中文版

    讲解了 JavaIO 与 JAVA NIO区别,JAVA NIO设计理念,以及JDK中java NIO中语法的使用

    NIO 入门.chm,NIO 入门.chm

    NIO入门.chm NIO入门.chm NIO入门.chm

    nio入门 IBM教材,pdf格式

    为了最大程度地从这里的讨论中获益,您应该理解基本的 Java 编程概念,如类、继承和使用包。多少熟悉一些原来的 I/O 库(来自 java.io.* 包)也会有所帮助。 虽然本教程要求掌握 Java 语言的工作词汇和概念,但是不...

    Java NIO 中文全书签

    nio对于java程序员来说可能不是很好理解,但是对于C程序员来说,就是epoll的一个封装。 我本人是C程序员,对java比较感兴趣,发现java nio里面很多的东西都是对C原生api的封装,如epoll, mmap等 要是想学习 java ...

    Java NIO 中英文版 + Pro Java 7 NIO.2

    Java NIO,Ron Hitchens 著,中文版 裴小星 译,Pro Java 7 NIO.2,Anghel Leonard 著,pdf文字版带书签,无安全限制

    Java NIO 中英文版

    Java NIO,Ron Hitchens 著,中文版 裴小星 译,pdf文字版带书签,无安全限制

    java nio 实现socket

    java nio 实现socketjava nio 实现socketjava nio 实现socketjava nio 实现socketjava nio 实现socket

    新输入输出NIO

    JDK 1.4 中引入的新输入输出 (NIO) 库在标准 Java 代码中提供了高速的、面向块的 I/O。本实用教程从高级概念到底层的编程细节,非常详细地介绍了 NIO 库。您将学到诸如缓冲区和通道这样的关键 I/O 元素的知识,并...

    java NIO和java并发编程的书籍

    java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java...

    Java NIO系列教程(一) Java NIO 概述

    Java NIO系列教程(一) Java NIO 概述

    java nio 包读取超大数据文件

    Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据...

Global site tag (gtag.js) - Google Analytics