Reactor和Proactor
\(Reactor\)模式
引入维基百科来解释下
一种事件处理模式,用于处理由一个或多个输入同时传递给服务处理程序的服务请求。然后,服务处理程序对传入的请求进行解复用,并将它们同步分派给关联的请求处理程序。
形象一点,一个服务器处理一个或者多个客户端,而服务器通过多路复用,同步分发给处理器。
显然看出,Reactor模式主要分为两个部分:I/O请求和非I/O处理。
一个合理的实例,服务器通过IO多路复用处理客户端信息,通过线程池处理客户端请求的内容。这就是一个很典型的Readtor模型。
Reactor模型具有如下的优点:
- 响应快,不必为单个同步时间所阻塞;
- 通过IO多路复用避免了多线程/进程的切换开销;
- 可扩展性,可以方便地通过增加Reactor实例个数来充分利用CPU资源;
- 可复用性,Reactor模型本身与具体事件处理逻辑无关,具有很高的复用性。