Reactor模式:要求主线程(I/O处理单元)只负责监听文件描述符上是否有事件发生(可读、可写),若有,则立即通知工作线程(逻辑单元),将socket可读可写事件放入请求队列,交给工作线程处理。
Proactor模式:将所有的I/O操作都交给主线程和内核来处理(进行读、写),工作线程仅负责处理逻辑,如主线程读完成后users[sockfd].read(),选择一个工作线程来处理客户请求pool->append(users + sockfd)。
以读为例,reactor是可读了通知你,proactor则是读完了通知你
Reactor与Proactor模式
本文探讨了Reactor和Proactor模式在I/O处理中的不同策略。Reactor模式中,主线程负责监听I/O事件,然后通知工作线程处理。而Proactor模式下,主线程直接处理I/O操作,完成后再通知工作线程执行逻辑。这两种模式分别在同步和异步I/O上有其独特优势。
摘要由CSDN通过智能技术生成