作業系統_並行和併發的區別 程序和執行緒的區別

NO IMAGE

並行:同一時刻,有多條指令在多個處理器上同時執行。

併發:同一時刻,只能有一條指令執行,但多個程序指令被快速輪換執行,使得在巨集觀上具有多個程序同時執行的效果。

程序一般具有以下4大要素:

1、有一段程式供其執行(該程式可以多個程序共用)。

2、有專用的系統堆疊空間。

3、在核心中有對應的程序控制塊。

4、有獨立的儲存空間,意味著擁有專有的使用者空間。

執行緒相對於程序而言,只具備了前面3條,而缺第四條。

特別的:

如果完全沒有使用者空間,就稱為核心執行緒。

如果共享使用者空間,則稱為使用者執行緒。

程序的顆粒度比執行緒大,執行緒共享了程序的上下文。

參見:執行緒和程序的區別是什麼?