TODO
一、概述
对于并发应用,同步多线程是目前比较流行的机制。但是线程会消耗额外的资源,并且多线程编程需要对同步机制有很深的理解,因此目前越来越多的操作系统都提供了异步并发机制,保留了并发的好处,同时还消除了线程的资源损耗以及多线程编程的复杂性。
Proactor模式就是为了描述如何有效利用操作系统的异步机制,而被提出的一种异步并发模式。使用该模式,当应用执行调用异步操作时,由操作系统代表应用来执行操作,无需应用持有相关的线程。这种模式简化了并发变成,提高了性能,并且只需更少的线程数。
二、通过典型的web服务器来比较Reactor与Proactor
典型的Web服务器结构
典型Web服务器的工作工程如下:
- 浏览器发送HTTP GET请求到Web服务器;
- Web服务器收到请求后进行解析和验证;
- Web服务器处理请求,上图所示的是读取文件服务器;
- Web服务器将处理结果(图中所示是一个文件)发送给浏览器
要开发高性能的Web服务器,需要解决如下问题:
- 并发:服务器必须能同时处理多个客户端的请求
- 效率:服务器必须尽量减少延时,增大吞吐量,并尽量减少CPU的- 消耗
- 易编码:服务器的设计应该使用简单而高效的并发策略