python/進程線程的總結
阿新 • • 發佈:2017-06-11
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/進程線程的總結