[linux] 多进程和多线程
生活随笔
收集整理的這篇文章主要介紹了
[linux] 多进程和多线程
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.在Linux系統(tǒng)下,啟動一個新的進程必須分配給它獨立的地址空間,建立眾多的數(shù)據(jù)表來維護它的代碼段、堆棧段和數(shù)據(jù)段,這是一種”昂貴”的多任務(wù)工作方式。
2.而運行于一個進程中的多個線程,它們彼此之間使用相同的地址空間,共享大部分數(shù)據(jù),啟動一個線程所花費的空間遠遠小于啟動一個進程所花費的空間,而且,線程間彼此切換所需的時間也遠遠小于進程間切換所需要的時間
3.根本區(qū)別就一點:用多進程每個進程有自己的地址空間(address space),線程則共享地址空間。所有其它區(qū)別都是由此而來的:
1)速度:線程產(chǎn)生的速度快,線程間的通訊快、切換快等,因為他們在同一個地址空間內(nèi)。
2)資源利用率:線程的資源利用率比較好也是因為他們在同一個地址空間內(nèi)。
3)同步問題:線程使用公共變量/內(nèi)存時需要使用同步機制還是因為他們在同一個地址空間內(nèi)。
多線程共享地址空間
?
轉(zhuǎn)載于:https://www.cnblogs.com/taoshihan/p/11279919.html
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的[linux] 多进程和多线程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [linux] 进程五状态模型
- 下一篇: [Linux] 进程间通信