Python并發編程高級課程--線程的同步和通信
極客小將2020-09-29-
線程通信:之前的課程中我們學過進程之間的通信,線程之間的通信有所不同,線程之間的通信是通過全局對象來進行通信的。舉例說明:進程中的所有線程共享進程的地址空間,可以定義一個全局變量,在各個不同進程中,根據全局變量的不同狀態,來執行不同的進程,類似于條件選擇語
線程通信:
之前的課程中我們學過進程之間的通信,線程之間的通信有所不同,線程之間的通信是通過全局對象來進行通信的。舉例說明:進程中的所有線程共享進程的地址空間,可以定義一個全局變量,在各個不同進程中,根據全局變量的不同狀態,來執行不同的進程,類似于條件選擇語句。
線程同步:
線程同步與進程同步一樣,引入同步機制是為對線程間的并發操作進行協調和制約。進程內的多個線程對共享資源進行并發讀寫時,必須進行同步,否則會出現數據不一致的情況。
舉例說明線程同步的重要性:
進程內有一個全局變量,初始值1000,表示銀行卡中的余額,進程中有兩個線程不斷進行消費,并更新全局變量的值。
同進程同步一樣,線程也可以通過互斥鎖,信號量來進行同步,此外還可以通過條件變量來進行同步。

- 上一篇
Python并發編程高級課程--線程
什么是線程?上節課中,我們降到了進程,知道了每創建一個進程,都需要系統分配CPU、內存、磁盤等資源。而系統中不止一個進程。在進程和進程之間切換的時候,系統需要記錄之前進程的執行狀態信息,以便下次執行時調用。由于在早期的電腦中,進程的創建、切換、銷毀存在較大的
- 下一篇
Python并發編程高級課程--協程
什么是協程?所謂的協程,對應的是程序中的一部分處理邏輯,比如程序中的某一個函數。與函數的區別在于,協程僅表示一個處理過程,通常沒有返回值。進程和線程的調度和切換由操作系統來進行控制,而協程的切換則由程序員進行控制。同學們在理解協程時,只需將它理解為一個函數