1. 程式人生 > >python 中的程序與執行緒的使用場景?

python 中的程序與執行緒的使用場景?

面試很容易問到,千萬別混淆:


多程序適合在CPU 密集型操作(cpu 操作指令比較多,如科學計算,位數多的浮點運算)


多執行緒適合在IO 密集型操作(讀寫資料操作較多的,比如爬蟲)

執行緒是併發,程序是並行;程序之間相互獨立,是系統分配資源的最小單位,同一個程序中的所有執行緒共享資源。

程序:一個執行的程式或程式碼就是一個程序,一個沒有執行的程式碼叫程式。程序是系統進行資源分配的最小單位,程序擁有自己的記憶體空間,所以程序間資料不共享,開銷大。

執行緒:排程執行的最小單位,也叫執行路徑,不能獨立存在,依賴程序的存在而存在,一個程序至少有一個執行緒,叫主執行緒,多個執行緒共享記憶體(資料共享和全域性變數),因此提升程式的執行效率。

協程:使用者態的輕量級執行緒,排程有使用者控制,擁有自己的暫存器上下文和棧,切換基本沒有核心切換的開銷,切換靈活。