1. 程式人生 > >python/進程線程的總結

python/進程線程的總結

tex 產生 關於 串行 enter 方式 想要 資源管理 但是

python/進程線程的總結

一、進程和線程的描述:

進程:最小的資源管理單位

線程:最小的執行單位

   執行一個進程時就默認執行一個線程(主線程)

進程和線程的工作方式:

串行:

假如共有A、B、C任務, 串行的執行流程是第一個執行A任務,A任務執行完畢後再執行B任務,B任務執行完畢後最後執行C任務。

並發:

假如共有A、B、C任務,並行的執行流程是執行A任務一段時間,切換成B任務執行一段時間,在切換到C任務,直到A、B、C三個任務都執行完畢。

並行:

假如共有A、B、C任務,並發的執行流程是同一時刻同時執行A、B、C任務但是必須要有多個處理器(CPU)

Cpython因為存在GIL導致同一時刻同一進程內只能有一個線程執行

關於daemon:程序直到不存在守護線程在退出

同步鎖:由於多線程處理公共數據(會導致數據錯誤才進行加鎖)

死鎖:在一個進程內有多個線程在獲取用戶鎖,同一時刻不同的線程拿到倆鎖,想要 交互的時候誰都沒有釋放就一直等待對方釋放,就產生了死鎖的情況

遞歸鎖:遞歸鎖的內部有一個計數的機制,當一個線程拿到以後就自加一。有進程釋放一次就自減一。註(默認的值是0,當鎖的值不為0時,所有的進程均不能進行獲取)

python/進程線程的總結