C++多線程基礎學習筆記(一)


下面分三個方面多線程技術的必須掌握一些基本知識。

1.進程

2.線程

3.並發

(1)進程

一個可執行程序運行起來了,即為創建了一個進程。如在電腦上打開了word,就創建了一個word進程,打開QQ,又創建了一個QQ進程。

可以在任務管理器中----->用戶中查看進程。

不同的進程之間的通信方式有:管道、消息隊列、共享內存、信號量(同一台電腦),socket(支持不同電腦)。

(2)線程

1.線程可理解成一條代碼執行的通道

2.線程與進程之間的關系:

同一個進程允許有多個線程;

同一個進程的每個線程都有獨立的堆棧空間;

一個進程只有一個主線程,主線程隨着進程的開始而開始,結束而結束;(例如我們在運行一個簡單的打印"hello world"程序時,實際上時進程的主線程來執行main函數中的打印”hello world"代碼)

一個進程中的所有線程共享內存,全局變量、指針、引用都可以在線程之間傳遞,這也是多線程技術性能高的原因,但同時也帶來了數據性一致的問題;(例如線程A和線程B同時對同一塊內存寫入數據,那么可能出現問題)

(3)並發

兩個或多個任務同時進行,包括多進程並發,多線程並發。

其他:

多線程技術是為了減少上下文切換的開銷時間,提高性能,但是並不是線程越多越好;

C++11新標准中,C++語言本身增加了多線程的支持,這意味着代碼可移植(跨平台)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM