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