知识卡片

IO与NIO的连接调度模型差异

专业/工作 · 1299

内容

传统阻塞IO模型中,每个连接绑定一个线程和一个while死循环轮询是否可读,连接数上万时大量线程同时空转等待,造成资源浪费与频繁切换。NIO的解法是把轮询责任从连接级别收到线程级别:所有连接统一注册到一个Selector,由一个线程一次调用批量探测哪些连接真正可读,再针对性处理,用少量线程管理海量连接。发散:这是把轮询开销从与连接数成正比压缩为近似常数级,epoll等事件驱动模型走的是同一条路。

参考来源

《跟闪电侠学Netty:Netty即时聊天实战与底层原理》第2章《Netty是什么》