簡述 程序、執行緒、協程的區別 以及應用場景--記錄
阿新 • • 發佈:2020-09-15
執行緒是指程序內的一個執行單元, # 程序 程序擁有自己獨立的堆和棧,既不共享堆,亦不共享棧,程序由作業系統排程。 # 執行緒 執行緒擁有自己獨立的棧和共享的堆,共享堆,不共享棧,執行緒亦由作業系統排程 # 協程和執行緒 協程避免了無意義的排程,由此可以提高效能;但同時協程也失去了執行緒使用多CPU的能力 程序與執行緒的區別 (1)地址空間:執行緒是程序內的一個執行單位,程序內至少有一個執行緒,他們共享程序的地址空間,而程序有自己獨立的地址空間 (2)資源擁有:程序是資源分配和擁有的單位,同一個程序內執行緒共享程序的資源 (3)執行緒是處理器排程的基本單位,但程序不是 (4)二者均可併發執行 (5)每個獨立的執行緒有一個程式執行的入口 協程與執行緒 (1)一個執行緒可以有多個協程,一個程序也可以單獨擁有多個協程,這樣Python中則能使用多核CPU (2)執行緒程序都是同步機制,而協程是非同步 (3)協程能保留上一次呼叫時的狀態