程序:-個執行的程式(**)就是乙個程序,沒有執行的**叫程式,程序是系統資源分配的最小單位,程序擁有自己獨立的記憶體空間,所以程序間資料不共享,開銷大。
執行緒:排程執行的最小單位 ,也叫執行路徑,不能獨立存在,依賴程序存在乙個程序至少有一 個
執行緒,叫主線程,而多個執行緒共享記憶體(資料共享, 共享全域性變數) ,從而極大地提高了程式的執行效率。
協程:是一種使用者態的輕量級執行緒,協程的排程完全由使用者控制。協程擁有自己的暫存器上下文和
棧。協程排程切換時,將暫存器上下文和棧儲存到其他地方,在切回來的時候,恢復先前儲存的寄存
器上下文和棧,直接操作棧則基本沒有核心切換的開銷,可以不加鎖的訪問全域性變數,所以上下文的切
換非常快。
多執行緒 多程序 協程
占用的資源 程序 執行緒 協程 程序的顆粒度太大,每次都要有上下的調入,儲存,調出。執行緒 乙個軟體的執行不可能是一條邏輯執行的,必定有多個分支和多個程式段,就好比要實現程式a,實際分成 a,b,c等多個塊組合而成 這裡的a,b,c就是執行緒,也就是說執行緒是共享了程序的上下文環境,的更為細小的cp...
執行緒 程序 協程(多程序,多執行緒)
程序是程式的一次執行過程,是乙個動態概念,是程式在執行過程中分配和管理資源的基本單位,每乙個程序都有乙個自己的位址空間,至少有 5 種基本狀態,它們是 初始態,執行態,等待狀態,就緒狀態,終止狀態。執行緒是cpu排程和分派的基本單位,它可與同屬乙個程序的其他的執行緒共享程序所擁有的全部資源。協程,是...
爬蟲知識點(多程序,多執行緒 多協程)
笑虎10 個月前 python中比較常見的併發方式主要有兩種 多執行緒和多程序。當然還有協程,這裡不做介紹。1 多執行緒 多執行緒即在乙個程序中啟動多個執行緒執行任務。一般來說使用多執行緒可以達到並行的目的,但由於python中使用了全域性解釋鎖gil的概念,導致python中的多執行緒並不是並行執...