主要内容:
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()方法。
模板代码
有了模板代码我们在编写程序时,大多数时间都是在模板代码中添加相应的业务代码。
客户端与服务端简单交互实例