多執行緒與多程序

2021-05-28 07:49:18 字數 688 閱讀 5208

程序:程序是程式的一次執行,在傳統的計算機中,程序既是基本的分配單元,也是基本的執行單元。

執行緒:執行緒是可執行的實體單元,它是處理機排程的基本單位。

由於執行緒在同一位址空間,因此建立和撤銷執行緒的開銷小,執行緒間的通訊效率高,切換迅速。在多處理機系統中,對程序的個數有所限制,但對執行緒的個數不存在這樣的限制,這更能發揮多處理機的優勢。執行緒由於共享位址空間,因此在使用公共變數/記憶體時需要同步機制。

管道——基本思想是將共享變數和對它們的操作集中在乙個模組中,作業系統或併發程式就由這樣的模組構成。模組之間聯絡清晰,便於維護和修改,易於保證正確性。

程序通訊機制:共享記憶體模式——系統在記憶體中申請乙個區域作為共享儲存區,建立一張段表進行管理,各程序可以申請其中的乙個儲存段,並在申請時提供關鍵字。若申請的存

儲區已經被其他程序占有,系統會想申請程序返回關鍵字,該儲存區就連線到了程序的邏輯位址空間,此後程序就可以直接訪問共享記憶體中的資料。若申請的儲存段尚未分配,系統會按照申請者的要求分配儲存段,並在段表中加入該程序資訊。

訊息傳遞方式——訊息是由傳送方形成,通過一定的機制傳遞給接收方的一組資訊,他的長度可以固定也可以變化。

管道——管道通訊是一種共享檔案模式,它基於檔案系統,連線於兩個通訊程序之間,先進先出的方式實現訊息的單向傳送。

多執行緒與多程序

魚還是熊掌 多程序多執行緒的選擇 關於多程序和多執行緒,教科書上最經典的一句話是 程序是資源分配的最小單位,執行緒是cpu排程的最小單位 這句話應付考試基本上夠了,但如果在工作中遇到類似的選擇問題,那就沒有這麼簡單了,選的不好,會讓你深受其害。經常在網路上看到有的xdjm問 多程序好還是多執行緒好?...

多程序與多執行緒

import threading建立乙個執行緒,指向的函式,不接收引數的情況 t threading.thread target 函式名 建立乙個執行緒,指向的函式,收引數的情況 t threading.thread target 函式名,args 實參1,執行緒物件名.start 生命週期 我們的...

多執行緒與多程序

程序是資源分配的最小單位,基於cpu而言的,一般乙個cpu執行乙個程序,只不過切換速度太快,相當於同時在執行多個程序。如程式a在讀取大量資料時,cpu可以切換程式b,當a讀完之後,儲存b的執行進度並暫停,繼續執行a 也就是併發執行 乙個程式對應乙個程序組,程序具有建立其他程序的功能,而程式沒有。同一...