文章 > java基础 > java Selector如何使用

java Selector如何使用

头像

小妮浅浅

2021-03-31 15:28:281048浏览 · 0收藏 · 0评论

1、使用说明

可以用selector对象注册多个通道。当I/O活动发生在任何通道上时,选择器通知我们。这就是我们如何从单个线程读取大量数据源的方法。我们向选择器注册的任何通道都必须是SelectableChannel的子类。这是一种特殊类型的通道,可以放在非阻塞模式中。所以FileChannel不适用Selector,因为FileChannel不能切换为非阻塞模式,更准确的来说是因为FileChannel没有继承SelectableChannel。而Socket channel可以正常使用。

2、实例

注册Channel到Selector(Channel必须是非阻塞的)

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

SelectionKey介绍

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

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

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

停止选择的方法

wakeup()方法 和close()方法。

以上就是java Selector的使用,希望对大家有所帮助。更多Java学习指路:Java基础

关注公众号

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

底部广告图 底部广告图按钮