BIO | NIO
2020-07-28 16:45:14 2 举报
BIO|NIO
作者其他创作
大纲/内容
epoll:基于事件通知
注册信息-2
buffer缓冲区
单线程
data
就是将建立连接和读写操作分离
data-1-1
SocketChannel
一个线程处理多个连接
等待连接阻塞状态
主线程调用事件处理
Client
Client1
等待客户端发数据
其他操作
……
data-2
BIO同步阻塞
data-3
selector(多路复用器)服务器端调用
建立通信
一个客户端一个线程
循环继续监听
data-1-2
多线程
监听
注册
ServerSocketChannel
通过SelectionKey绑定通道
客户端不做操作是对线程的一个浪费
Thread
select:基于轮询查看是否有数据
创建子线程
Read()阻塞状态
注册信息-3
Server
底层使用Linux API(select,poll,epoll)实现
Client2
事件处理
监听状态
有客户端连接解阻塞
获得客户端数据解阻塞
形成通道
结束操作
客户端连接
注册信息-1
设置非阻塞
selector多路复用器客户端调用
连接服务器
bind port
NIO同步非阻塞
谁有数据就处理谁,谁先来就处理谁
serverSocket.accept()socket通信
ServerSocketListen启动
Bindip + port
0 条评论
下一页