多路复用

2020-05-28  本文已影响0人  gstsyyb

背景:
1、少量线程处理大量客户端连接,如何实现????
线程资源是有限的,不能无限增加。
2、reactor 如果负载过高,单线程可能挂掉,如何解决?????
主从 reactor 来实现

原理图:

nio:同步非阻塞,阻塞在 Select 上(多路复用),适合大量连接,连接时间较短

image.png

Reactor 模型(1个 reactor与多个 reactor)
问题:reactor 线程不能存在单点,一旦出现 reactor 异常,将无法读写

image.png

NIO 模型:


image.png

AIO 模型:

image.png
上一篇下一篇

猜你喜欢

热点阅读