進程和線程的區別,最簡單的解釋說明

1、進程是資源分配的最小單位,線程是程序執行的最小單位(資源調度的最小單位)


2、進程有自己的獨立地址空間,每啓動一個進程,系統就會爲它分配地址空間,建立數據表來維護代碼段、堆棧段和數據段,這種操作非常昂貴。
而線程是共享進程中的數據的,使用相同的地址空間,因此CPU切換一個線程的花費遠比進程要小很多,同時創建一個線程的開銷也比進程要小很多。


3、線程之間的通信更方便,同一進程下的線程共享全局變量、靜態變量等數據,而進程之間的通信需要以通信的方式(IPC)進行。不過如何處理好同步與互斥是編寫多線程程序的難點。


4、但是多進程程序更健壯,多線程程序只要有一個線程死掉,整個進程也死掉了,而一個進程死掉並不會對另外一個進程造成影響,因爲進程有自己獨立的地址空間。

 

根據本人多年從業以及學習經驗,錄製了一套最新的Java精講視頻教程,如果你現在也在學習Java,在入門學習Java的過程當中缺乏系統的學習教程,你可以加羣654631948領取下學習資料,面試題,開發工具等,羣裏有資深java老師做答疑,每天也會有基礎部分及架構的直播課,也可以加我的微信renlliang2013做深入溝通,只要是真心想學習Java的人都歡迎。

java基礎教程:https://ke.qq.com/course/149432?tuin=57912c43


Java分佈式互聯網架構/微服務/高性能/springboot/springcloud:

https://ke.qq.com/course/179440?tuin=57912c43

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