NIO - Selector

Selector: 多路复用器,一个selector可以处理多个客户端; 一个selector对应一个线程
在这里插入图片描述NIO 非阻塞原理分析图
在这里插入图片描述

服务端实例
1.开启serverSocketChannel
2.将ServerSocketChannel注册到select(OP_ACCEPT:连接)中
3. 循环等待客户端,当检测到client连接后,开启一个新的SocketChannel,并注册到select (OP_READ:读取)
4. 循环等待客户端,当检测到client读取,获取channel和buffer并打印
5. 每个循环都要移除selector

在这里插入图片描述在这里插入图片描述
客户端实例
1.开启SocketChannel
2.将buffer数据写入Channel中
在这里插入图片描述