如果逻辑流在时间上重叠,那么它们就是并发的,这种现象称为并发(Concurrency)。现代操作系统提供三种基本的构造并发程序的方法:
1)进程。每个逻辑控制流都是一个进程,由内核来调度和维护。因为进程有独立的虚拟地址空间,想要和其他流通信,控制流必须使用某种显式的进程间通信(IPC)机制。
2)I/O多路复用。在这种并发编程中,应用程序在一个进程的上下文显式地调用自己的逻辑流。逻辑流被模型化为状态机,数据到达文件描述符后,主程序显式地从一个状态转换到另一个状态。因为程序是一个单独的进程,所以,所有的流都共享同一个地址空间。
3)线程。线程是运行在一个单一进程上下文中的逻辑流,由内核进行调度。