多线程编程指南

I/O 作为远程过程调用

在传统的 UNIX 模型中,I/O 看上去是同步的,就像对 I/O 设备进行远程过程调用一样。调用返回后,I/O 即完成,或者至少看上去已完成。例如,写入请求可能仅导致将数据传输到操作环境中的缓冲区。

此模型的优点在于过程调用的概念是为用户所熟知的。

在传统 UNIX 系统中未使用的一种替代方法是异步模型,在此模型中,I/O 请求仅启动操作。程序必须以某种方式了解操作完成的时间。

异步模型不像同步模型那样简单。但是,异步模型的优点是允许并发 I/O 和在传统单线程 UNIX 进程中的处理。