問四:進程與線程的區別?

兩者區別:

1.資源擁有:進程是資源分配的最小單位,線程是CPU調度的最小單位,同一個進程中的線程共享本進程中的資源(如內存、CPU、IO等),進程間資源獨立

2.地址空間:同一個進程的線程共享本進程的地址空間,而進程之間則是獨立的地址空間

3.執行方面:進程可以看做一個獨立應用來單獨執行,而線程則必須依託與進程執行

4.系統開銷:進程切換消耗資源更多、開銷更大(用戶態與內核態的切換)

 

在JAVA中的聯繫:

運行一個普通程序產生一個進程,進程中會自動創建一個主線程

一個進程對應一個JVM實例,多個線程共享JVM中的堆內存空間

主線程可以創建子線程,一般會後於子線程完成執行(但是可以通過sleep或者join方法讓子線程先於父線程完成)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章