程式與執行緒的產生
版權宣告:本文可能為博主原創文章,若標明出處可隨便轉載。 https://blog.csdn.net/Jailman/article/details/80236810
摘自《作業系統原理》
執行緒產生的先提條件:
隨著並行技術、網路技術和軟體設計技術的發展,給併發程式設計效率帶來了一系列新的問題,主要表現在:
- 程式時空的開銷大,頻繁的程式排程將耗費大量處理器時間,要為每個程式分配儲存空間限制了作業系統中程式的總數。
- 程式通訊的代價大,每次通訊均要涉及通訊程式之間或通訊程式與作業系統之間的資訊傳遞。
- 程式之間的併發性粒度較粗,併發度不高,過多的程式切換和通訊延遲使得細粒度的併發得不償失。
- 不適合平行計算和分佈平行計算的要求,對於多處理器和分散式的計算環境來說,程式之間大量頻繁的通訊和切換,會大大降低並行度。
- 不適合客戶/伺服器計算的要求。對於 C/S
結構來說,那些需要頻繁輸入輸出並同時大量計算的伺服器程式(如資料庫伺服器、事務監督程式)很難體現效率。
執行緒和程式存在的根本原因:
如果說作業系統中引入程式的目的是為了使多個程式能併發執行,以改善資源使用率和提高系統效率,那麼,在作業系統中再引入執行緒,則是為了減少程式併發執行時所付出的時空開銷,使得併發粒度更細、併發性更好。
執行緒的產生思想:
把程式的兩項功能--“獨立分配資源”與“被排程分派執行”分離開來,前一項任務仍由程式完成,它作為系統資源分配和保護的獨立單位,不需要頻繁地切換;後一項任務交給稱作執行緒的實體來完成,它作為系統排程和分派的基本單位,會被頻繁地排程和切換,在這種指導思想下,產生了執行緒的概念。
相關文章
- JAVA執行緒消費者與生產者模型Java執行緒模型
- 執行緒、執行緒與程式、ULT與KLT執行緒
- Java多執行緒——消費者與生產者的關係Java執行緒
- 多執行緒------執行緒與程式/執行緒排程/建立執行緒執行緒
- 多執行緒-執行緒安全問題的產生原因分析以及同步程式碼塊的方式解決執行緒安全問題執行緒
- 程式與執行緒執行緒
- 執行緒與程式執行緒
- 執行緒間的協作(2)——生產者與消費者模式執行緒模式
- Java 多執行緒基礎(十二)生產者與消費者Java執行緒
- Python-多執行緒及生產者與消費者Python執行緒
- python執行緒通訊與生產者消費者模式Python執行緒模式
- java多執行緒:執行緒間通訊——生產者消費者模型Java執行緒模型
- java多執行緒之消費生產模型Java執行緒模型
- 多執行緒之生產者消費者執行緒
- Android程式框架:執行緒與執行緒池Android框架執行緒
- Java多執行緒1:程式與執行緒概述Java執行緒
- 多執行緒-生產者消費者問題程式碼1執行緒
- 程式與執行緒--原理執行緒
- java多執行緒:執行緒同步synchronized(不同步的問題、佇列與鎖),死鎖的產生和解決Java執行緒synchronized佇列
- PHP 的多程式與執行緒PHP執行緒
- 程式與執行緒的區別執行緒
- Android的程式與執行緒Android執行緒
- Java 多執行緒學習(執行緒通訊——消費者和生產者)Java執行緒
- 多執行緒-生產者消費者問題程式碼2並解決執行緒安全問題執行緒
- 程式設計思想之多執行緒與多程式(2):執行緒優先順序與執行緒安全程式設計執行緒
- python 多執行緒實現生產者與消費者模型Python執行緒模型
- android程式與執行緒詳解二:執行緒Android執行緒
- 從一次生產消費者的bug看看執行緒池如何增加執行緒執行緒
- Java多執行緒——生產者消費者示例Java執行緒
- 深夜生產事故,人工多執行緒來救場!執行緒
- 執行緒與多執行緒執行緒
- 程式與執行緒區別執行緒
- Android程式與執行緒Android執行緒
- 執行緒、程式與協程執行緒
- 協程、執行緒與程式執行緒
- Java執行緒:執行緒的同步與鎖Java執行緒
- Operating System-Thread(5)彈出式執行緒&&使單執行緒程式碼多執行緒化會產生那些有關問題thread執行緒
- Java 多執行緒(Java.Thread)------ 執行緒協作(生產者消費者模式)Java執行緒thread模式