c++11多執行緒入門例項
#include <iostream>
#include <thread>
#include <chrono>
#include <random>
#include <exception>
using namespace std;
void doSomething(int num, char c)
{
try{
default_random_engine dre(42 * c);
uniform_int_distribution<int> id(10, 100);
for (int i = 0; i < num; ++i){
this_thread::sleep_for(chrono::milliseconds(id(dre)));
cout.put(c).flush();
}
}
catch (const exception & e){
cerr << "exception is :thread id is " << this_thread::get_id() << ", " << e.what() << endl;
}
}
int main()
{
try{
thread t1(doSomething, 5, '.');
cout << "start the t1 thread " << t1.get_id() << endl;
for (int i = 0; i < 5; ++i){
thread t(doSomething, 10, 'a' + i);
cout << "detach start the thread " << t.get_id() << endl;
t.detach();
}
cin.get();
cout << "join the t1 thread " << t1.get_id() << endl;
t1.join();
}
catch (const exception &e){
cerr << "exception is " << e.what() << endl;
}
system("pause");
return 0;
}
6個執行緒併發輸出,第二個到第六個執行緒脫離了主程式,呼叫了t.detach(); 主程式等待第一個執行緒,呼叫了t1.join(); t1.get_id()獲得該執行緒id;
感覺和在linux下面的多執行緒好像,pthread_create()建立執行緒,pthread_join()等待執行緒,pthread_detach脫離主執行緒,pthread_self()獲得該執行緒的id;具體用法看man手冊;
相關文章
- c++11 多執行緒入門教程(一)C++執行緒
- java多執行緒例項Java執行緒
- 【C++11多執行緒入門教程】系列之互斥量mutexC++執行緒Mutex
- Java多執行緒(一)多執行緒入門篇Java執行緒
- Java多執行緒入門Java執行緒
- 多執行緒與高併發(一)多執行緒入門執行緒
- Java多執行緒學習(一)Java多執行緒入門Java執行緒
- 多執行緒基礎入門執行緒
- python 多執行緒 入門Python執行緒
- win32多執行緒和C++11多執行緒對比Win32執行緒C++
- 入門python多執行緒/多程式Python執行緒
- Qt中的多執行緒與執行緒池淺析+例項QT執行緒
- day20_多執行緒入門丶執行緒安全執行緒
- c++11多執行緒詳解(一)C++執行緒
- Java入門教程十三(多執行緒)Java執行緒
- Android入門教程 | 多執行緒Android執行緒
- Linux程式多執行緒入門Linux執行緒
- C#多執行緒程式設計例項C#執行緒程式設計
- go語言多執行緒入門筆記-執行緒同步Go執行緒筆記
- Java多執行緒傻瓜入門介紹Java執行緒
- Java 高階 --- 多執行緒快速入門Java執行緒
- java多執行緒的入門小記Java執行緒
- Java入門系列-21-多執行緒Java執行緒
- iOS多執行緒程式設計入門iOS執行緒程式設計
- JavaSE_多執行緒入門 執行緒安全 死鎖 狀態 通訊 執行緒池Java執行緒
- 淺談C++11中的多執行緒(一)C++執行緒
- 淺談C++11中的多執行緒(三)C++執行緒
- QT從入門到入土(四)——多執行緒QT執行緒
- vc入門寶典六(多執行緒) (轉)執行緒
- Java多執行緒程式設計入門(轉)Java執行緒程式設計
- python爬蟲入門八:多程式/多執行緒Python爬蟲執行緒
- 【多執行緒與高併發3】常用鎖例項執行緒
- Java多執行緒2:Thread中的例項方法Java執行緒thread
- pytest(13)-多執行緒、多程式執行用例執行緒
- Java多執行緒/併發05、synchronized應用例項:執行緒間操作共享資料Java執行緒synchronized
- c++11 新特性實戰 (一):多執行緒操作C++執行緒
- 使用 C++11 編寫 Linux 多執行緒程式C++Linux執行緒
- 多執行緒下的單例執行緒單例