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