(4)NIO之Selector

主要内容:

Selector(选择器)介绍

也称 多路复用器 。NIO核心组件,检查一个或多个NIO Channel(通道)的状态是否处于可读、可写。实现单线程管理多个channels,也就是可以管理多个网络链接

好处更少的线程处理通道, 相比使用多个线程,避免线程上下文切换带来的开销

Selector(选择器)的使用方法介绍

一、Selector的创建:

selector=Selector.open();

channel.configureBlocking(false);  //注册Channel到Selector(Channel必须是非阻塞的)

SelectionKey key=channel.register(selector,Selectionkey.OP_READ);

二、SelectionKey介绍

一个SelectionKey键表示了一个特定的通道对象和一个特定的选择器对象之间的注册关系。

Selector中选择channel(Selecting Channels via a Selector)

选择器维护注册过的通道的集合,这种注册关系被封装在SelectionKey中.

停止选择的方法:wakeup()、close()方法。

模板代码

有了模板代码我们在编写程序时,大多数时间都是在模板代码中添加相应的业务代码。

客户端与服务端简单交互实例

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容