1. 程式人生 > >C++11併發學習之一:小試牛刀

C++11併發學習之一:小試牛刀

1.與C++11多執行緒相關的標頭檔案
C++11 新標準中引入了四個標頭檔案來支援多執行緒程式設計,他們分別是<atomic> ,<thread>,<mutex>,<condition_variable>和<future>。
<atomic>:

該頭文主要聲明瞭兩個類, std::atomic和std::atomic_flag,另外還聲明瞭一套C風格的原子型別和與C相容的原子操作的函式。

<thread>:

該標頭檔案主要聲明瞭 std::thread 類,另外 std::this_thread 名稱空間也在該標頭檔案中。

<mutex>:

該標頭檔案主要聲明瞭與互斥量(mutex)相關的類,包括std::mutex系列類, std::lock_guard,std::unique_lock,以及其他的型別和函式。                    

<condition_variable>:

該標頭檔案主要聲明瞭與條件變數相關的類,包括 std::condition_variable和std::condition_variable_any。

<future>:

該標頭檔案主要聲明瞭std::promise, std::package_task兩個Provider類,以及std::future和std::shared_future兩個Future類,另外還有一些與之相關的型別和函式,std::async()函式就宣告在此標頭檔案中。

2.Hello world

#include <thread>
#include <iostream>
 
void func()
{
    std::cout<<"worker thread ID:"<<std::this_thread::get_id()<<std::endl;
    std::cout<<"Hello Word"<<std::endl;
 
}
 
int main()
{
    std::cout<<"main thread ID:"<<std::this_thread::get_id()<<std::endl;
    std::thread workerThread(func);
    workerThread.join();
 
    return 0;
}
3.執行結果

從列印資訊可以看出,有兩個執行緒在執行。
--------------------- 
作者:燦哥哥 
來源:CSDN 
原文:https://blog.csdn.net/caoshangpa/article/details/52829747?utm_source=copy 
版權宣告:本文為博主原創文章,轉載請附上博文連結!