前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >选择器(Selector)是SelectableChannle 对象的多路复用器

选择器(Selector)是SelectableChannle 对象的多路复用器

原创
作者头像
用户7108768
修改2021-09-26 17:48:23
4570
修改2021-09-26 17:48:23
举报
文章被收录于专栏:阿林前端开发攻城狮

选择器(Selector)是SelectableChannle 对象的多路复用器,Selector 可以同时监控多个SelectableChannel 的IO 状况,也就是说,利用Selector 可使一个单独的线程管理多个Channel。Selector 是非阻塞IO 的核心

选择器的创建

代码语言:javascript
复制
// 创建一个选择器
Selector selector = Selector.open();

绑定选择器

通过调用通道的register方法可以绑定选择器,register方法有两个参数

  • Selector:即绑定哪个选择器
  • ops:监听事件类型。ops有4个值可以选择,为SelectionKey的静态属性
代码语言:javascript
复制
// 让选择器监听一种状态
myChannel.register(selector, SelectionKey.OP_READ);
// 让选择器监听多种状态
myChannel.register(selector, SelectionKey.OP_READ | SelectionKey.OP_ACCEPT);

SelectionKey

表示SelectableChannel 和Selector 之间的注册关系。每次向选择器注册通道时就会选择一个事件(选择键)。选择键包含两个表示为整数值的操作集。操作集的每一位都表示该键的通道所支持的一类可选择操作。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档