专题NIO
2023-08-01 16:02:24 8 举报
AI智能生成
java NIO学习笔记
作者其他创作
大纲/内容
Netty
Redis
Zookeeper<br>
IO基础
内核态和用户态
read和write<br>
数据缓冲区
调用流程
子主题
IO模型
同步阻塞
图示
同步非阻塞NIO<br>
图示
IO多路复用
图示<br>
异步IO
图示<br>
Linux文件句柄配置
Java NewIO<br>
核心组件
Chanel<br>
4子类
FileChannel
创建FileChannel<br>
read()
write()<br>
force()
SocketChannel
configureBlocking()
ServerSocketChannel
register(Selector,SelectionKey)
accept()
Buffer
8子类
重要属性<br>
capacity
position
limit
mark
重要方法
allocate()
put()
flip()<br>
get()
rewind()
mark()和reset()<br>
clear()
Selector
SelectableChannel
SelectionKey
open()
select()
select是阻塞方法,阻塞期间 channel.resiger方法也会阻塞住。<br>
代码示例<br>
客户端
服务端
Reactor模式
简介<br>
Reactor
Handler
单线程Reactor模型
EchoReactor 负责开启Socket服务端, 轮询就绪状态,分发连接<br>
其内部类 AcceptorHandler 专门处理 accept事件<br>
EchoHandler 负责读取数据,处理数据<br>
图示
多线程Reactor模型
MEchoReactor 负责开启Socket服务端<br>
其内部类 AcceptorHandler 专门处理 accept事件<br>
SubReactor 子响应器<br>
轮询就绪状态,分发连接<br>
MEchoHandler 处理器<br>
内部可以维护一个线程池,执行任务
图示<br>
0 条评论
下一页