`
Tonyguxu
  • 浏览: 272281 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【Java NIO】选择器

 
阅读更多

====笔记=====

Java NIO提供选择器(Selectors),选择器提供选择执行已经就绪的任务的能力,使得多元IO成为可能。就绪选择和多元IO使得单线程能够有效率地同时管理多个I/O通道(channels)。

——一种新的IO模型

我的理解:一个工作线程通过“选择器”监控多个IO通道,当IO通道没有就绪的任务时,该线程可以做其他事情(不用阻塞),当IO通道上有任务就绪时,该线程能够处理该任务。

 

 

三个主要的类


keyword: 可选择通道   注册  选择器对象   select()  选择键  选择键集合  就绪的通道


疑问:将通道(Channel)注册(register)到选择器(Selector),注册方法是通道提供还是选择器提供呢?

——观察者模式 http://nemogu.iteye.com/blog/1407857

SelectionKey register(Selector sel, int ops, Object att)
Registers this channel with the given selector, returning a selection key.
在visitor模式中,访问者访问节点,首先通过node.accept(visitor)
一点收获:如果将A注册到B,则A提供一个register方法,a.register(b)

观察者模式中也是由主题来提供register方法,主题调用该注册方法将观察者注册进来。

 

SelectionKey(选择键)

一个selectableChannel可以注册到多个selector上,并且一个selector也可以监控多个selectableChannel,通过选择键来表示一个通道和选择器之间的注册关系。

 

分享到:
评论

相关推荐

    java NIO 视频教程

    Java NIO(New IO)是一个可以替代标准Java IO API的IO API(从Java 1.4开始),Java...Java NIO引入了选择器的概念,选择器用于监听多个通道的事件(比如:连接打开,数据到达)。因此,单个的线程可以监听多个数据通道。

    Java NIO(通道+缓冲区+选择器)

    Java NIO通道:通道基础、文件通道、Socket通道、工具类 Java NIO缓冲区:基础、缓冲区(Buffer)、创建缓冲区、直接缓冲区(DirectByteBuffer) Java NIO选择器:核心概念、选择器使用、Demo、选择器深入、

    java基于NIO选择器Selector的多人聊天室

    本代码是基于JAVA技术NIO流的选择器Selector的多人聊天室,实现了多个客户端之间的聊天,拥有java窗体、画板等。

    Java NIO Selector选择器简介.pdf

    java NIO Selector选择器简介.pdf

    java nio教程pdf

    Java NIO: Channels and Buffers(通道和缓冲区) 标准的IO基于字节流和字符流...Java NIO引入了选择器的概念,选择器用于监听多个通道的事件(比如:连接打开,数据到达)。因此,单个的线程可以监听多个数据通道。

    [第9节] Java NIO流-选择器操作4

    [第9节] Java NIO流-选择器操作4[第9节] Java NIO流-选择器操作4[第9节] Java NIO流-选择器操作4

    java nio 中文版

    第四章 选择器 第五章 正则表达式 第六章 字符集 --------------------- 作者:仓鼠洞 来源:CSDN 原文:https://blog.csdn.net/zhiyong499/article/details/78711911 版权声明:本文为博主原创文章,转载请...

    [ Java ] 最通俗易懂的 Java NIO 讲解

    文章目录IO 与 NIO 的比较...选择器(Selectors) 通道和缓冲区 通道(Channel):负责传输(铁路) 缓冲区(Buffer):负责存储(火车) 缓冲区(buffer) 一、根据数据类型的不同,提供了相应类型的缓冲区(Boolea

    java nio.doc

    java.nio.charset 包中定义了字符集 API,java.nio.channels 包中定义了信道和选择器 API。每个子包都具有自己的服务提供程序接口 (SPI) 子包,SPI 子包的内容可用于扩展平台的默认实现或构造替代实现。

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

    [第4节] JavaNIO流-通道1.flv [第5节] Java NIO流-通道2.flv [第6节] Java NIO流-socket通道操作.flv [第7节] Java NIO流-文件通道操作.flv [第8节] Java NIO流-选择器 .flv [第9节] Java NIO流-选择器操作.flv...

    wifi-direct-chat:使用Java Nio通道通过wifi直接进行点对点聊天应用

    Java NIO选择器和通道。 如今,Java NIO已被包括Netty在内的许多项目广泛使用。 它提供了用于编写可伸缩服务器的无阻塞IO设施。 Java NIO提供了用于缓冲​​传入数据的缓冲机制。 通道是通过管道在两个实体之间传输...

    深入了解java NIO之Selector(选择器)

    主要介绍了java NIO之Selector(选择器)的相关资料,文中讲解非常详细,实例代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下

    java-nio.rar_java nio_nio 对象实例化

    实例化HashMap类型的一个对象用来存放每一个客户对应的套接字和通道,实例化线程通道选择器等,当由用户请求时,接受,加入选择项,注册感兴趣事件,另一线程处理输入流,在前面加echo:,发给客户端。

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

    选择器 java nio主要的核心组件 缓冲区 buffer 通道 Channels 选择器 Selectors java nio缓冲区buffer 简介 Buffer是数据的容器,在nio中负责数据的存取,java为不同数据类型提供了相对应的缓冲区类型 如:...

    Java NIO 聊天室 JSwing

    import java.nio.channels.SocketChannel; import java.util.Iterator; import com.nio.user.ClientUser; import com.nio.user.ClientUserManager; import com.nio.user.UserData; public class NIOClient { ...

    2021最新-Java NIO视频教程-视频教程网盘链接提取码下载 .txt

    教程内容涵盖:阻塞和非阻塞IO、Channel通道、Buffer缓冲区、Selector选择器、Pipe管道、FileLock文件锁,以及Path、Files、异步FileChannel和Charset字符编码等,并通过一个多人聊天室的综合案例,把所有的NIO知识...

    java8源码-nio:java8nio使用的总结

    选择器(Selectors) 2. NIO_缓冲区(Buffer)的数据存取 缓冲区(Buffer):在 Java NIO 中负责数据的存取。缓冲区就是数组。用于存储不同数据类型的数据 4. NIO_直接缓冲区与非直接缓冲区 非直接缓冲区:通过 allocate...

    JAVA IO-NIO 详解

    NIO的核心组件包括Channel(通道)、Buffer(缓冲区)和Selector(选择器)。Channel是数据传输的通道,它替代了传统IO中的流;Buffer是数据的容器,它可以在Channel和程序之间进行数据的读写操作;Selector则用于...

    Java流NIO

    什么是NIO Java NIO(NEW IO)是从Java1.4开始引入的新版IO,用来替代标准的Java IO API NIO于原来的IO有相同的功能,但是他们之间的使用方式是完全不同的,NIO是面向缓冲区,面向通道的的IO操作...Selectors(选择器)

Global site tag (gtag.js) - Google Analytics