Linux 服务器程序必须处理的三类事件:
- I/O事件
- 信号
- 定时事件
处理这三类事件主要考虑以下问题:
- 统一事件源(统一处理这三类问题可以使代码简单易懂,又能避免潜在的逻辑问题)
- 可移植性(不同的操作系统有不同的 I/O 复用方式)
- 对并发编程的支持(在多进程和多线程情况下,需要考虑各执行实体如何协同处理了客户连接、信号和定时器,以避免竞态条件)
I/O框架库概述
I/O框架库是以库函数的形式,封装了较为底层的系统调用,给应用程序提供的一组更便于使用的接口。
I/O框架库的实现原理:
- 以Reactor模式实现
- 以Proactor模式实现
- 同时用Reactor和Proactor两种模式实现</