多程序就是跑了乙個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...