天天看点

单Reactor和主从Reactor模式介绍

单Reactor模式

  1. 单Reactor需要响应连接和读写事件,单线程处理任务较多
  2. 单Reactor连接和读写事件放在一块处理,会互相影响,而且本身读写事件是一个比较耗时的操作,当一个读写事件处理事件太长,那么势必会影响下一个连接事件的处理,影响用户连接,这是个非常不友好的事情,很影响体验。

主从Reactor模式

  1. 主从Reactor将会使用两个Reactor,主Reactor响应连接事件,从Reactor响应读写事件
  2. 主Reactor的selector只关注连接事件,接受到一个连接后,将通道注册到从Reactor的selector上,这样连接和读写事件互不影响
  3. 这里会涉及到两个selector, 主Reactor线程扫描serverSocketChannel的连接事件,接收到后交给Acceptor处理,Acceptor会得到一个socketChannel,然后注册到从Reactor的selector上,从Reactor线程扫描处理所有socketChannel的读写事件

主从Reactor模式原理图

单Reactor和主从Reactor模式介绍

继续阅读