乙個是實力的體現,乙個是商用的必須需求。
以往:windows: creatthread(),_beginthred(),_beginthredexe()
linux: pthread_create() 建立執行緒
臨界區,互斥量。以往多執行緒**不能跨平台。
從c++11開始,c++語言本身增加可移植性。
整個程序是否執行完畢的標誌是主線程是否執行完畢。此時,如果主線程執行完畢,但是其他子執行緒還沒有執行完畢,那麼,這些子執行緒也會被作業系統強行終止。
1.包含標頭檔案:
#include
2.建立乙個執行緒函式
void myprint()
3.main中開始寫**
std::thread mythread(myprint);
mythread.join();//阻塞主線程,讓主線程等待
傳統多執行緒:等待子執行緒執行完畢,然後自己最後在退出。
detach():主線程可以不等子執行緒執行完畢,就結束程式。此時子執行緒跑到系統的後台執行,相當於被c++執行時庫接管,當這個子執行緒執行完成後,由執行時庫負責清理相關資源。
一旦detach(),就不能join(),否則會出現異常。
void myprint()
std::thread mythread(myprint);
mythread.detach();//一起列印,但是主線程完畢後,就結束程式
cout << "hello world" << endl;
joinable():判斷能不能使用join或detach。
執行緒引數:當執行緒引入引數時,是以複製的形式,
程序 併發 執行緒 032
一 計算機操作原理簡介 硬碟 永久儲存資料的 記憶體 暫存資料 cpu 運算 三者之間關係如下圖 二 併發 提高程式的工作效率 偽並行 遇到io就進行切換 1程序切換 2儲存現場 儲存程式執行的資訊 並行 3個cpu同時執行 3個程式 三 程序的建立 開啟裝置上安裝的程式使其進入執行狀態即建立了乙個...
執行緒,程序和併發
程序是什麼?程序是正在執行的程式 程序是正在計算機上執行的程式例項 程序是能分配給處理器並由處理器執行的實體。程序一般會包括指令集和系統資源集,這裡的指令集是指程式 這裡的系統資源集是指i o cpu 記憶體等。綜合起來,我們也可以理解程序是具有一定獨立功能的程式在關於某個資料集合上的一次執行活動,...
程序 併發 執行緒 032
一 計算機操作原理簡介 硬碟 永久儲存資料的 記憶體 暫存資料 cpu 運算 三者之間關係如下圖 二 併發 提高程式的工作效率 偽並行 遇到io就進行切換 1程序切換 2儲存現場 儲存程式執行的資訊 並行 3個cpu同時執行 3個程式 三 程序的建立 開啟裝置上安裝的程式使其進入執行狀態即建立了乙個...