操做系統提供三種基本的構造併發程序的方法:併發
進程操作系統
每一個邏輯控制流 都是一個進程線程
由內核來調度和維護。
由於進程有獨立的虛擬地址空間進程
和其餘進程通訊,控制流必須使用某種顯式的進程間通訊(interprocess communication,IPC)進制
I/O多路複用(暫時不太懂)
應用程序在一個進程的上下文中顯示地調度它們本身的邏輯流。
邏輯流被模型化爲狀態機,數據到達文件描述符後,主程序顯式地從一個狀態轉換到另外一個狀態。
由於程序是一個單獨的進程,因此全部的流都共享同一個地址空間。io
線程
線程是運行在一個單一進程上下文中的邏輯流,有內核調度。
像進程同樣由內核進行調度。
而像I/O多路複用一流同樣共享一個虛擬地址空間。程序