程序、進程、線程的概念與區別

1、程序、進程、線程的概念:多線程

1.程序是指一組指示計算機或其餘具備信息處理能力裝置執行動做或作出判斷的指令,一般用某種程序設計語言編寫,運行於某種目標計算機體系結構上。
併發

2.進程是計算機中的軟件程序關於某數據集合上的一次運行活動,是系統進行資源分配和調度的基本單位,是操做系統結構的基礎。ide

3.線程是進程中的一個實體,是被系統獨立調度和分派的基本單位,線程本身不擁有操做系統資源,可是該線程可與同屬進程的其餘線程共享該進程所擁有的所有資源。性能

4.進程是程序的實體,而線程又是進程的實體。進程又是線程的容器。spa

image.png

2、程序、進程、線程三者區別以下:操作系統

1.程序:程序並不能單獨執行,是靜止的,只有將程序加載到內存中,系統爲其分配資源後纔可以執行。
線程

2.進程:程序對一個數據集的動態執行過程,一個進程包含一個或者更多的線程,一個線程同時只能被一個進程所擁有,進程是分配資源的基本單位。進程擁有獨立的內存單元,而多個線程共享內存,從而提升了應用程序的運行效率。設計

3.線程:線程是進程內的基本調度單位,線程的劃分尺度小於進程,併發性更高,線程自己不擁有系統資源,可是該線程可與同屬進其餘線程共享該進程所擁有的所有資源。每個獨立的線程,都有一個程序運行的入口、順序執行序列和程序的出口。blog

3、多進程、多線程的區別以下:進程

1.多進程:每一個進程互相獨立,不影響主程序的穩定性,某個子進程崩潰對其餘進程沒有影響,經過增長CPU能夠擴充軟件的性能,能夠減小線程加鎖/解鎖的影響,極大提升性能。缺點是多進程邏輯控制複雜,須要和主程序交互,須要跨進程邊界,進程之間上下文切換比線程之間上下文切換代價大。

2.多線程:無需跨進程,程序邏輯和控制方式簡單,全部線程共享該進程的內存和變量等。缺點是每一個線程與主程序共用地址空間,線程之間的同步和加鎖控制比較麻煩,一個線程的崩潰會影響到整個進程或者程序的穩定性。

相關文章
相關標籤/搜索