WALL-E / r-project

:book: Reading plan
1 stars 0 forks source link

head first设计模式 #2

Open WALL-E opened 7 years ago

WALL-E commented 7 years ago

Reactor vs Proactor

要缓和反应式的瓶颈效应,而又不引入同步I/O和多线程的复杂性和开销,前摄式I/O模型常常是一种可伸缩性更好的途径。该模型允许应用用过以下两个阶段来执行I/O操作:

  1. 应用可以在多个I/O句柄上并行地发起一个或多个异步I/O操作,而无需等待它们完成。
  2. 在每个操作完成时,OS会通知应用定义的完成处理器,由它随后对已完成的I/O操作的结果进行处理。

前摄式I/O模型的两个阶段在本质上是反应式模型中的两个阶段的反转,应用在反应式模型中:

  1. 使用事件多路分离器来确定某个I/O操作何时可以进行,并且有可能立刻完成。然后 2.同步的执行操作。

除了通过异步性来改善应用的可伸缩性,取决于平台的异步I/O的实现,前摄式I/O模型还可以提供其他好处。例如,如果多个异步I/O操作可被同时发起,并且各个操作带有扩展信息,比如用于文件I/O的文件位置,那么,OS就可以优化其内部的缓冲区策略来避免无谓的数据复制。它还可以通过重新安排各个操作的次序来优化文件I/O, 使磁盘头移动降至最低,并且/或者增加缓存的命中率。

摘自-《C++网络编程,卷2》基于ACE和框架的系统复用