【Java NIO】 之Selector


一、问题



(1)selector是什么?

selector选择器类是一种抽象,是一种对请求操作系统服务的抽象。

这个操作系统服务是哪个?
处理I/O请求并通知,这也是操作系统中最重要的功能之一。

选择器是提供管理功能的对象,对注册到它这边的通道(channel)执行就绪选择,并管理选择键(selectionKey


(2)selector为什么需要?

selector 是Java的非阻塞I/O实现的关键。

提供了更好的资源管理:

  1. 使用较小的线程便可以处理许多连接,因此也减少了内存管理和上下文切换所带来开销;
  2. 但没有 I/O 操作需要处理的时候,线程也可以被用于其他任务

(3)selector怎么用?
Selector selector = Selector.open();
ServerSocketChannel.open().register(selector, SelectionKey.OP_ACCEPT);
while(true){
    int size=selector.select();//获取连接
}


二、参考资料


  1. http://ifeve.com/selectors/
  2. << Java NIO >>
  3. << Netty 实战 >>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值