1. 程式人生 > >Python-進程與線程

Python-進程與線程

cpu pytho 一個 多核cpu 至少 內存分配 進程調度算法 進程 不同

什麽是進程?

操作系統用來調度和分配資源的一個單位。每個應用程序至少有一個進程。

進程是競爭計算機資源的基本單位。(進程是最小的內存分配單位,作用是分配資源)

※ 單核CPU: 同一時刻只能執行一個進程。但若CPU運行速度足夠快,能在不同的應用程序進程之間切換。

《操作系統原理》:關於進程調度算法

頻繁切換進程/線程開銷非常大,上下文頻繁保存加載, 消耗大量CPU資源。

什麽是線程?

線程是進程的一部分,一個進程可以有一個線程,或多個線程。

(線程是操作系統調度的最小單位(輕量),作用是利用CPU執行代碼,它訪問進程資源,但不擁有資源)

# 線程直接被CPU執行,進程內至少含有一個線程,也可以開啟多個線程

# 開啟一個線程所需要的時間要遠遠小於開啟一個進程
# 多個線程內部有自己的數據棧,數據不共享
# 全局變量在多個線程之間是共享的

線程切換消耗的資源比進程切換消耗的資源要少很多。

線程與進程最主要的區別是:分工不同。

  • python 無法充分利用多核CPU的優勢

Python-進程與線程