進程線程多進程多線程通信機制面試

進程:進程是系統資源分配的最小單位,在執行過程中有自己的獨立的內存單元,

進程的系統開銷:進程在創建和銷燬時都有系統要爲之分配或回收資源,由此產生的開銷不可避免,比如內存空間,I/O設備,

進程間通信:進程間通信需要IPC參與,多進程通信在調試和編程時要相對簡單,但是創建和銷燬進程產生的開銷大於線程,多進程不會互相影響。

線程:線程時CPU調度的最小單位,依賴於進程而存在,一個進程可以有多個線程,但一個線程只隸屬於一個進程,多個線程共享同一進程的內存空間,同一進程中 的多個線程共享代碼段,堆,但是每個線程擁有自己的棧區,用來存放局部變量和臨時變量。

線程的系統開銷,線程的系統開銷小於進程的系統開銷,線程在切換時只需要保存或設置少量的寄存器內容,並不涉及儲存管理的操作,

線程通信:線程間通信可以直接通過讀寫全局變量來實現,爲保證準確性需要進行線程同步和互斥手段的參與。

 

 

進程互不影響,一個進程掛掉不影響其他進程的運行,但線程一個掛掉進程也會崩掉,因爲共用進程空間,

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