知识卡片

无锁化串行设计的原理

专业/工作 · 1310.a

内容

NioEventLoop主循环只做三件事:轮询IO事件、处理IO事件(触发Pipeline读写回调)、执行任务队列里的任务。三者在同一线程顺序完成,同一Channel的所有读写与业务逻辑永远发生在这一线程,彼此天然互斥,不需要锁保护共享状态。发散:无锁化串行设计把并发问题转化为调度问题,用时间排队代替空间加锁,这与[[NIO线程不可阻塞的架构约束]]是同一机制的两面。

参考来源

《跟闪电侠学Netty:Netty即时聊天实战与底层原理》第22章《Reactor线程模型解析》