AQS源碼分析
使用應用級并發(fā)的應用程序稱為并發(fā)程序。操作系統(tǒng)提供了三種基本的構造并發(fā)程序的方法:
進程。用這種方法,每個邏輯控制流都是一個進程,由內核來調度和維護。因為進程有獨立的虛擬地址空間,想要和其它流通信,控制流必須使用某種顯式的進程間通信(interprocess communication,IPC)機制。
I/O多路復用。在這種形式的并發(fā)編程中,應用程序在一個進程的上下文中顯式地調度它們自己的邏輯流。邏輯流被模型化為狀態(tài)機,數據到達文件描述符后,主程序顯式地從一個狀態(tài)轉換到另一個狀態(tài)。因為程序是一個單獨的進程,所以所有的流都共享同一個地址空間。
線程。線程是運行在一個單一進程上下文中的邏輯流,由內核進行調度。可以把線程看成是其它兩種方式的混合體,像進程流一樣由內核進程調度,而像I/O多路復用流一樣共享同一個虛擬地址空間。
標簽: