程式執行緒對比總結以及對於生產者消費者的場景分析
程式是一個正在執行的程式,是在計算機上執行的程式例項,是能分配給處理器並由處理器執行的實體。程式資訊在Linux下被放在一個叫做task_struct的結構體裡。在多執行緒的情況下,程式通常被定義為資源分配的單位和保護的單位。
執行緒在Linux下也叫做輕量級程式,是程式執行的最小單位。
執行緒是存在於程式中,每個執行緒都有執行緒執行狀態,在執行時會儲存執行緒的上下文,具有獨立的執行棧,並且有用於每個執行緒區域性變數的靜態儲存空間,執行緒可以對所屬程式的的記憶體和資源進行訪問,也可以與同一個程式中的其他執行緒共享資源。
執行緒共享程式的地址空間與資料,當一個執行緒修改資料後,其他的程式會看到修改後的資料,執行緒相比較程式來說效能上佔有很大優勢。在一個已有的程式中建立一個全新程式的時間要少,因為建立程式會建立PCB,建立對應的地址空間,建立頁表等,但是對於執行緒來說就不需要建立了,因為它與所屬程式是共享程式地址空間的。相同的,銷燬的時候對於執行緒也比較容易銷燬,花費時間較少。執行緒也提高了不同執行程式間通訊的效率。
程式與執行緒的關係表示(摘自《作業系統精髓與設計原理》)
相關文章
- 多執行緒之生產者消費者執行緒
- Java多執行緒——生產者消費者示例Java執行緒
- JAVA執行緒消費者與生產者模型Java執行緒模型
- 多執行緒-生產者消費者問題程式碼1執行緒
- Java多執行緒——生產者和消費者模式Java執行緒模式
- Java多執行緒14:生產者/消費者模型Java執行緒模型
- java多執行緒:執行緒間通訊——生產者消費者模型Java執行緒模型
- java多執行緒總結六:經典生產者消費者問題實現Java執行緒
- Java多執行緒——消費者與生產者的關係Java執行緒
- 多執行緒下的生產者和消費者-BlockingQueue執行緒BloC
- Java 多執行緒學習(執行緒通訊——消費者和生產者)Java執行緒
- 讀者寫者與生產者消費者應用場景
- 執行緒間的協作(2)——生產者與消費者模式執行緒模式
- 關於Java多執行緒實現生產者和消費者的問題Java執行緒
- Java 多執行緒基礎(十二)生產者與消費者Java執行緒
- Python-多執行緒及生產者與消費者Python執行緒
- python中多執行緒消費者生產者問題Python執行緒
- python執行緒通訊與生產者消費者模式Python執行緒模式
- 分享一個生產者-消費者的真實場景
- 生產者消費者模式--java多執行緒同步方法的應用模式Java執行緒
- python多執行緒+生產者和消費者模型+queue使用Python執行緒模型
- 多執行緒併發如何高效實現生產者/消費者?執行緒
- C#多執行緒學習(三) 生產者和消費者C#執行緒
- 用Python多執行緒實現生產者消費者模式Python執行緒模式
- python 多執行緒實現生產者與消費者模型Python執行緒模型
- 多執行緒-生產者消費者之等待喚醒機制執行緒
- Java多執行緒-併發協作(生產者消費者模型)Java執行緒模型
- C# 多執行緒學習(3) :生產者和消費者C#執行緒
- Java 多執行緒(Java.Thread)------ 執行緒協作(生產者消費者模式)Java執行緒thread模式
- 多執行緒-生產者消費者問題程式碼2並解決執行緒安全問題執行緒
- java學習回顧---生產者與消費者問題以及多執行緒補充Java執行緒
- 多執行緒 -- 移動檔案(生產者,消費者模式應用)執行緒模式
- 二、(LINUX 執行緒同步) 互斥量、條件變數以及生產者消費者問題Linux執行緒變數
- Java多執行緒15:Queue、BlockingQueue以及利用BlockingQueue實現生產者/消費者模型Java執行緒BloC模型
- 多執行緒-生產者消費者之等待喚醒機制程式碼優化執行緒優化
- 使用Python佇列和多執行緒實現生產者消費者Python佇列執行緒
- 生產者消費者模式,以及基於BlockingQueue的快速實現模式BloC
- Linux下生產者與消費者的執行緒實現Linux執行緒