進程和線程

進程 : 進程和進程之間相對比較獨立  一個操作系統中可能有幾十上百個進程在運行,每個進程的內存是獨立的。(

32位 64位 內存的尋址空間 32 2的32次方 4G 每個進程都有一個4G的內存空間,你可以用 但不是真的分給你,是邏輯內存。)

 

 

 

內存:每個進程有單獨的 邏輯內存 內存的尋址空間 32位 2^32 是4G內存的空間 你可以用 但不是說把這個4個G分給你 

 

文件/網絡句柄: 多個進程共享 每個進程可以打開同一個文件 可以搶同一個網絡接口

 

線程: 

 

    

 

棧 :調用堆棧 主線程入口 不斷進行函數調用 會把所有的參數和返回數據壓進棧 等等

 

PC: 下一條執行指令的地址 (這個指令本身放在內存中 計算機是存儲程序性 數據和代碼存儲在同一部風內存 )

 

TLS:線程獨立內存 

 

線程纔是操作系統真正運行的  進程只不過是一個容器  進程間有很強烈隔離  進程間沒有共享內存 所以進程間交互有很多種 比較常見的就是TCP/IP

 

線程間通信很簡單 因爲有共享內存 進程開銷很大 因爲要分配內存 而線程開銷會小很多 因爲只需要分配棧就可以了。

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