進程和線程的定義和區別


進程和線程的定義和區別

1、進程定義

進程:是具有一定獨立功能的程序關於某個數據集合上的一次進行活動,是系統進行資源分配和調度的一個獨立單位。

 

2、線程定義

線程:是進程的一個實體,是cpu調度和分派的基本單位,他是比進程更小的能夠獨立運行的基本單位,線程自己基本上不擁有系統資源,只擁有一點在運行中必不可少的資源。一個線程可以創建和撤銷拎一個線程。

 

區別:

1、一個線程只能屬於一個進程,而一個進程可以擁有多個線程。

2、線程是進程工作的最新單位。

3、一個進程會分配一個地址空間,進程與進程之間不共享地址空間。即不共享內存。

4、同一個進行下的不同的多個線程,共享父進程的地址空間。

5、線程在執行過程中,需要協助同步。不同進程的線程間要利用消息通信的辦法實現同步。

6、線程作為調度和分配的基本單位,進程作為擁有資源的基本單位。

 

進程的優點:

1、每個進程互相獨立,不影響主程序的穩定性,子進程崩潰不影響其他進程。

2、通過增加CPU,就可以擴充性能。

3、可以盡量減少線程加鎖與解鎖的影響,極大的提高了性能。

 

進程的缺點:

1、邏輯控制復雜,需要和主程序交互。

2、多進程調度開銷大。

 

線程的優點:

1、程序邏輯和控制方式簡單。

2、所有線程可以直接共享內存和變量等。

3、線程方式消耗的總資源比進程方式少。

 

線程的缺點:

1、每個線程和主程序共用地址空間,最大內存地址受限。

2、線程之間的同步和加鎖不易控制。

3、一個線程的崩潰可能影響到整個程序的穩定性。

 


免責聲明!

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



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