proactor和reactor模式
1.Reactor是非阻塞同步网络模式,感知的是就绪可读写事件。每次感知到有I/O事件发生后,需要进程主动调用read方法完成数据读取,也就是要应用进程主动将socket接收缓存中的数据读到应用进程内存中。这个过程是同步的,读取完数据后应用进程才能处理数据。
2.Proactor是异步网络模式,感知的是已完成的读写事件。在发起异步读写请求时,需要传入数据缓冲区的地址等信息,这样系统内核才自动帮我们把数据的读写工作完成,读写工作全程由操作系统完成。
总结:
Reactor可以理解为“来了事件操作系统通知应用进程,让应用进程来处理”
Proactor可以理解为来了事件操作系统来处理,处理完了再通知应用进程
区别在于 Reactor 模式是基于「待完成」的 I/O 事件,⽽ Proactor 模式则是基于「已完成」的 I/O 事件