Proactor
Proactor
- 应用程序初始化一个异步读取操作,然后注册相应的事件处理器,此时事件处理器不关注读取就绪事件,而是关注读取完成事件,这是区别于
Reactor 的关键。 - 事件分离器等待读取操作完成事件。
- 在事件分离器等待读取操作完成的时候,操作系统调用内核线程完成读取操作
( 异步IO 都是操作系统负责将数据读写到应用传递进来的缓冲区供应用程序操作,操作系统扮演了重要角色) ,并将读取的内容放入用户传递过来的缓存区中。这也是区别于Reactor 的一点,Proactor 中,应用程序需要传递缓存区。 - 事件分离器捕获到读取完成事件后,激活应用程序注册的事件处理器,事件处理器直接从缓存区读取数据,而不需要进行实际的读取操作。