1. 程式人生 > 其它 >一、多執行緒基本概念

一、多執行緒基本概念

併發

程序是資源分配的基本單位,切換程序時需要重新讀取記憶體;

  比如說:QQ登入時,就會把QQ的相關程式碼(指令)從磁碟讀到記憶體中,再讀入CPU,存入暫存器中,再通過ALU執行指令;如果現在想登入微信,就需要為微信重新分配記憶體空間,然後把微信的程式碼拷貝到CPU暫存器中再執行。

而執行緒是資源排程的基本單位,只需要暫存器保留執行狀態即可。

  比如說:執行緒A在ALU中執行了一段指令,但如果此時需要切換執行緒B,就可以把當前的執行情況先存入CPU快取中,以便切換回來時能夠接著執行。執行緒切換時不會重新分配空間。

  使用併發的原因:同時執行多個事情,提高效能,多執行緒開發適合多核處理器。

執行緒的使用

  1. 一個程序至少有一個執行緒,在C++中,main()函式是主執行緒的入口函式。
  2. 執行緒不是越多越好,需要看CPU的執行密度,比如:一個執行緒執行和等待的時間是1:3,那麼4個執行緒比較ok。
  3. 從C++11開始,C++本身增加了對多執行緒的支援,意味著可移植性。
心之所願,永不相忘