事件处理模式与并发编程模式
还是游双大佬的《高性能Linux服务器编程》
事件处理模式
服务器端主要需要处理三类事件,I/O事件,定时事件和信号
对于这些事件的处理,可以分成两种模式,也就是两种方法。
Reactor模式 — 异步I/O
主线程(IO处理单元)只负责监听文件描述符上是否有事件发生,有的话立即通知工作线程(逻辑单元),读写数据、接受新连接及处理客户请求均在工作线程中完成。通常由同步I/O实现。
注意:区分同步异步IO的准则就是判断是就绪还是完成,就绪就是同步,完成就是异步。
也就是说,主线程就负责喊号,怎么做,你们的事情。
Proactor — 异步I/O
主线程和内核负责处理读写数据、接受新连接等I/O操作,工作线程仅负责业务逻辑,如处理客户请求。通常由异步I/O实现。
也就是老板帮忙处理食材,大厨只管炒就行了。
同步I/O模拟Proactor模式
由于异步I/O并不成熟