Reactor是基于NIO中实现多路复用的一种模式.
什么是Reactor模式
- 同步的等待多个事件源到达(采用select()实现)
- 将事件多路分解以及分配相应的事件服务进行处理,这个分派采用server集中处理(dispatch)
- 分解的事件以及对应的事件服务应用从分派服务中分离出去(handler)
为什么使用Reactor模式
常见的网络服务中,如果每一个客户端都维持一个与登陆服务器的连接。那么服务器将维护多个和客户端的连接以出来和客户端的contnect 、read、write ,特别是对于长链接的服务,有多少个c端,就需要在s端维护同等的IO连接。这对服务器来说是一个很大的开销。
三种Reactor模型
- 单Reactor单线程模型
- 单Reactor多线程模型
- 多Reactor多线程模型
</div>