Python并發編程高級課程--線程
什么是線程?
上節課中,我們降到了進程,知道了每創建一個進程,都需要系統分配CPU、內存、磁盤等資源。而系統中不止一個進程。在進程和進程之間切換的時候,系統需要記錄之前進程的執行狀態信息,以便下次執行時調用。由于在早期的電腦中,進程的創建、切換、銷毀存在較大的開銷,現在的電腦都引入了一種能獨立運行的基本單位-線程。 線程遠比進程輕量,只占用較少的系統資源,自線程被引入以后,線程成為系統進行調度和執行的最小單位。
線程、進程、操作系統的基本關系?
進程是操作系統進行資源分配的基本單位,進程運行于系統中,以這樣的角度來看,可將操作系統理解為一個包含各種進程的容器。進程運行在操作系統這個容器里面,占用著操作系統的各種資源:CPU,內存,磁盤等。
而線程是運行在進程內部的執行實體,一個線程對應一個單一順序的控制流,從這一個角度來看,進程則是線程的容器。在支持多線程的操作系統中,一個進程內部可以并發執行多個線程。
線程運行在進程這個容器里面,共享著進程內部的資源,這表現為:所有線程共享進程的地址空間,打開的文件等。進程中的多個線程之間,可以并發地執行,線程的執行也是由操作系統進行調度的,系統會根據實際情況,將線程指定給特定的CPU核心,以此進行并發計算。

- 上一篇
Python并發編程高級課程--進程間的通信和同步
進程間的通信:和人類社會一樣,每個進程在執行過程中也需要爭奪更多的系統資源來執行自身程序,所以他們之間也需要通信,最常見的通信就是文件,共享內存,信號,套接字等。進程之間的通信,本質是數據傳輸。進程間的同步:如果系統中只存在一個進程,或系統中的進程完全孤立
- 下一篇
Python并發編程高級課程--線程的同步和通信
線程通信:之前的課程中我們學過進程之間的通信,線程之間的通信有所不同,線程之間的通信是通過全局對象來進行通信的。舉例說明:進程中的所有線程共享進程的地址空間,可以定義一個全局變量,在各個不同進程中,根據全局變量的不同狀態,來執行不同的進程,類似于條件選擇語