c 多執行緒程式設計初探

2021-08-01 19:56:43 字數 1815 閱讀 1862

多程序就是跑了乙個main函式,直到結束

多執行緒就是在跑這個程序的過程中,把一條河流截成很多條小溪,可以相互通訊,共享變數等。

c++11 新標準中引入了五個標頭檔案來支援多執行緒程式設計,它們分別是, ,,

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

:該標頭檔案主要宣告了 std::thread 類,另外 std::this_thread 命名空間也在該標頭檔案中。

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

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

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

#include 

#include

#include // std::cout

#include // std::thread

void thread_task()

int main(int argc, const

char *argv)

#include

#include

#include

// std::cout

#include

<

thread

>

// std::thread

void foo()

int main()

#include 

#include

#include // std::cout

#include // std::thread

void foo()

void bar()

int main()

可以去掉這個m.lock和m.unlock看效果

#include 

#include

#include // std::cout

#include // std::thread

#include // std::mutex

volatile

int counter(0); // non-atomic counter

std::mutex mtx; // locks access to counter

#include

#include

#include

std::mutex m;//you can use std::lock_guard if you want to be exception safe

int i = 0;

void makeacallfromphonebooth()

int main()

2 3

初探C 多執行緒程式設計

初探c 多執行緒程式設計 以前在使用vb來實現多執行緒的時候,發現有一定的難度。雖然也有這樣那樣的方法,但都不盡人意,但在c 中,要編寫多執行緒應用程式卻相當的簡單。這篇文章將作簡要的介紹,以起到拋磚引玉的作用!net將關於多執行緒的功能定義在system.threading名字空間中。因此,要使用...

c 多執行緒程式設計 初探

c 多執行緒併發可以幫助我們挖掘cpu的效能,在我們的思想中,似乎程式都是順序執行的。這樣的結論是建立在 程式是單執行緒程式。比如我們平時寫的hello world程式 但是如果程式是多執行緒的。那麼這個結論就不成立了。先上 1 include 2 include 3 include 4 5void...

C語言多執行緒程式設計初探 MinGW pthread

將dll x86下的pthreadgc2.dll和pthreadgce2.dll拷貝到mingw的bin資料夾下 將include資料夾下的pthread.h sched.h和semaphore.h拷貝到mingw的include資料夾下 還有將lib x86下的libpthreadgc2.a和li...