關於進程與並發詳解


程序

程序是指,一組指示計算機執行動作或做出判斷的指令,通常使用某種程序設計語言編寫,運行再操作系統上。
程序是靜態的

進程

進程是程序的一次執行過程,進程是動態的。
進程是一個程序及其數據在處理及上順序執行時所發生的活動
進程是具有獨立功能的程序在一個數據集合上運行的過程,它是系統進行資源分配和調度的一個獨立單位。

線程

引入進程的目的是更好地使多通道程序並發執行,提高資源的利用率和系統的吞吐量,而引入線程的目的則是
減小程序在並發執行時所付出的時空開銷,提高操作系統的並發性能。
線程最直接的理解就是“輕量級進程”,它是一個基本的CPU執行單元,也是程序執行流的最小單元。
引入線程后,進程的內涵發生了改變,進程只作為除CPU外的系統資源的分配單元,而線程則作為處理機的分配單元。

並發

所謂的並發指的是同時擁有兩個或多個線程,如果程序在單核處理器上運行,多個線程將交替地換入或者換出內存。
這些進程是同時存在的,每個進程都處於執行過程中的某個狀態,如果運行在多核處理器上,此時,程序中每個處理器
可以執行一個進程,因此多個進程可以同時執行。

並行

並行相對於並發的區別是:
並發指的是兩個或多個事件在同一時間段發生
並行指的是兩個或多個事件在同一時間點發生

在操作系統中,多個程序運行時,並發性指的是在一段時間內宏觀上有多個程序在同時運行
(例如邊玩游戲邊聽歌),但是在單核系統中,每一時刻卻僅有一個程序執行,
這就是CPU中時間片的概念,可以想象CPU把運行1秒鍾分成10份,計算機中所有程序
運行中交替執行在每一個0.1秒之中。而並行則要求在同一時刻一起執行。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM