據說這個問題很重要,要從多個方面總結。
多執行緒和多程序的區別(小結)
多執行緒還是多程序的選擇及區別
##0、教科書上的一句話
程序是資源分配的最小單位,執行緒是cpu排程的最小單位。
##1、共享的變數與私有的變數
同一程序的不同執行緒會共享程序記憶體空間中的全域性區和堆。
執行緒私有的是棧和暫存器。
因此。區域性變數都是執行緒私有的。
全域性變數、靜態變數、分配於堆的變數都是共享的。
##2、通訊
程序間通訊是ipc。包括:
執行緒因為共享全域性變數、堆,可以直接通過這些變數通訊。
##3、建立、銷毀、上下文切換
多程序的建立、銷毀、上下文切換都比較複雜,速度慢。
多執行緒的建立、銷毀、上下文切換相對比較簡單,速度快。
##4、可靠性
多程序之間相互不影響。
多執行緒中的乙個執行緒掛掉會導致整個程序掛掉。
##5、分布式
多程序可以多核分布式、多機器分布式。
多執行緒只能多核分布式,不能多機器分布。
程序和執行緒有什麼區別
目錄關係 區別是具有一定獨立功能的程式 它是系統進行資源分配和排程的乙個獨立單位,重點在系統排程和單獨的單位,也就是說程序是可以獨 立執行的一段程式。執行緒程序的乙個實體,是cpu排程和分派的基本單位,他是比程序更小的能獨立執行的基本單位,執行緒自己基本上不擁有系統資源。在執行時,只是暫用一些計數器...
執行緒和程序有什麼區別
1 程序 程序在作業系統中可以獨立執行,是作業系統進行資源分配和排程的基本單元。2 執行緒 執行緒是程序中的乙個例項,作為系統排程和分派的基本單位,是程序中的一段序列,能夠完成程序中的乙個功能。3 程序和執行緒的區別 1 同乙個程序可以包含多個執行緒,乙個程序中至少包含乙個執行緒,乙個執行緒只能存在...
多執行緒 多程序?
這幾天在思考如何改進原型在多個客戶端的情況下的效能,特地溫習了一下多程序和多執行緒的一些知識。在linux下程序的程序和執行緒在核心看來區別很小,都是乙個可排程單元,都擁有記憶體管理結構等等。但是關鍵的差別是程序的資源都是私有的,而執行緒則是和別人共享的,所以執行緒的上下文切換可能比程序的開銷要小很...