多程序 多執行緒 有什麼區別? 詳解

2021-07-16 14:03:57 字數 546 閱讀 2225

據說這個問題很重要,要從多個方面總結。

多執行緒和多程序的區別(小結)

多執行緒還是多程序的選擇及區別

##0、教科書上的一句話

程序是資源分配的最小單位,執行緒是cpu排程的最小單位。

##1、共享的變數與私有的變數

同一程序的不同執行緒會共享程序記憶體空間中的全域性區和堆。

執行緒私有的是棧和暫存器。

因此。區域性變數都是執行緒私有的。

全域性變數、靜態變數、分配於堆的變數都是共享的。

##2、通訊

程序間通訊是ipc。包括:

執行緒因為共享全域性變數、堆,可以直接通過這些變數通訊。

##3、建立、銷毀、上下文切換

多程序的建立、銷毀、上下文切換都比較複雜,速度慢。

多執行緒的建立、銷毀、上下文切換相對比較簡單,速度快。

##4、可靠性

多程序之間相互不影響。

多執行緒中的乙個執行緒掛掉會導致整個程序掛掉。

##5、分布式

多程序可以多核分布式、多機器分布式。

多執行緒只能多核分布式,不能多機器分布。

程序和執行緒有什麼區別

目錄關係 區別是具有一定獨立功能的程式 它是系統進行資源分配和排程的乙個獨立單位,重點在系統排程和單獨的單位,也就是說程序是可以獨 立執行的一段程式。執行緒程序的乙個實體,是cpu排程和分派的基本單位,他是比程序更小的能獨立執行的基本單位,執行緒自己基本上不擁有系統資源。在執行時,只是暫用一些計數器...

執行緒和程序有什麼區別

1 程序 程序在作業系統中可以獨立執行,是作業系統進行資源分配和排程的基本單元。2 執行緒 執行緒是程序中的乙個例項,作為系統排程和分派的基本單位,是程序中的一段序列,能夠完成程序中的乙個功能。3 程序和執行緒的區別 1 同乙個程序可以包含多個執行緒,乙個程序中至少包含乙個執行緒,乙個執行緒只能存在...

多執行緒 多程序?

這幾天在思考如何改進原型在多個客戶端的情況下的效能,特地溫習了一下多程序和多執行緒的一些知識。在linux下程序的程序和執行緒在核心看來區別很小,都是乙個可排程單元,都擁有記憶體管理結構等等。但是關鍵的差別是程序的資源都是私有的,而執行緒則是和別人共享的,所以執行緒的上下文切換可能比程序的開銷要小很...