C++11 多執行緒gcc編譯簡單示例
1. 編輯源程式
vim hello.cpp
#include <iostream> #include <thread> void func(int x) { std::cout << x << " new thread\n"; } int main() { std::cout << "hello world\n"; std::thread t(func, 8); t.join(); std::cout << "end thread\n"; return 0; }
2. 編譯程式
g++ -std=c++0x -pthread hello.cpp -o hello
3. 執行程式
./hello
注意編譯的時候所帶的引數,若不帶-pthread,編譯可以通過,執行會出現以下問題。
terminate called after throwing an instance of 'std::system_error'
what(): Operation not permitted
Aborted (core dumped)
相關推薦
C++11 多執行緒gcc編譯簡單示例
1. 編輯源程式 vim hello.cpp #include <iostream> #include <thread> void func(int x) { std::cout << x << "
gcc編譯選項:c++11 多執行緒編譯
c++11原生支援多執行緒程式設計,如下程式碼(假設檔名為test.cpp): #include <iostream> #include <future> using namespace std; int main() { auto fr0 =
C++11 多執行緒學習----std::thread類的簡單使用
一 C++11多執行緒簡介 C++11標準庫會提供類thread(std::thread)。若要執行一個執行緒,可以建立一個類thread的實體,其初始引數為一個函式物件,以及該函式物件所需要的
C++11多執行緒std::thread的簡單使用
在cocos2dx 2.0時代,我們使用的是pthread庫,是一套使用者級執行緒庫,被廣泛地使用在跨平臺應用上。但在cocos2dx 3.0中並未發現有pthread的支援檔案,原來c++11中已經擁有了一個更好用的用於執行緒操作的類std::thread。cocos
G++下如何編譯執行C++11多執行緒程式碼
安裝G++的指令:1. 編輯源程式:sudo apt-get install g++ vim hello.cpp#include <iostream>#include <thre
一、C++11多執行緒std::thread的簡單使用(上)
出處:http://blog.csdn.net/star530/article/details/24186783 昨天練車時有一MM與我交替著練,聊了幾句話就多了起來,我對她說:”看到前面那倆教練沒?老色鬼兩枚!整天調戲女學員。“她說:”還好啦,這畢竟是他們的樂趣所在,你不
Cocos2dx 3.0 過渡篇(二十六)C++11多執行緒std::thread的簡單使用
--------------- 《上》 本篇介紹的是執行緒! 在cocos2dx 2.0時代,我們使用的是pthread庫,是一套使用者級執行緒庫,被廣泛地使用在跨平臺應用上。但在cocos2dx 3.0中並未發現有pthread的支援檔案,原來c++11中已經擁有了一
[轉]c++11 多執行緒 future/promise
[轉自 https://blog.csdn.net/jiange_zh/article/details/51602938] 1. < future >標頭檔案簡介 Classes std::future std::future_error std::packaged_task std::pro
c++11多執行緒 thread
1.thread建構函式 default (1) thread() noexcept; initialization (2) template <class Fn, class... Args> explicit
C++11 多執行緒執行緒共享資料
共享資料的問題 這些在作業系統中都有詳細的介紹,可以回顧作業系統課程。。很典型的就是資料競爭問題。 互斥量保護資料 最原始的方式:使用std::mutex建立互斥量,使用成員lock()加鎖,使用成員unlock()解鎖。但是這種方式需要我們在每個函數出口都呼叫一次unloc
c++11多執行緒與執行緒池
最近需要開發一個高效能運算庫,涉及到c++多執行緒的應用,上次做類似的事情已經是4年多以前了,印象中還頗有些麻煩。悔當初做了就算了,也沒想著留點記錄什麼的。這次又研究了一番,發現用上c++11特性之後,現在已經比較簡單了,在此記錄一下。 最簡單的多執行緒情況,不涉及公共變數,各個執行緒之間獨
利用C++11實現執行緒task的簡單封裝
#include <functional> #include <thread> #include <type_traits> /*Compile only if 'F' is callable. F maybe function, la
C++11多執行緒(1)
C++11中添加了duox多執行緒類,編寫C++程式可以直接使用C++11中的多執行緒庫,不必依賴於平臺多執行緒,這樣可以方便寫出誇平臺的多執行緒程式。多執行緒可以最大化利用計算機資源,提高程式碼的執行效率。 C++11中thread類提供兩
C++ 11 多執行緒下std::unique_lock與std::lock_guard的區別和用法
這裡主要介紹std::unique_lock與std::lock_guard的區別用法 先說簡單的 一、std::lock_guard的用法 std::lock_guard其實就是簡單的RAII封裝,在建構函式中進行加鎖,解構函式中進行解鎖,這樣可以保證函式退出時,鎖一定被釋放。 簡單來說,就是防止開
C++11多執行緒------std::async
std::async可以認為是封裝了一個std::promise,該函式返回一個std::future,用於獲取其他執行緒的資料。 一般有兩種模式: std::lanch::async:最常用的非同步模式,每次都要執行一遍 std::lanch::defer:只在第
C++11多執行緒---互斥量、鎖、條件變數的總結
關於互斥量std::mutex的總結 互斥量用於組成程式碼的臨界區。C++的多執行緒模型是基於記憶體的,或者說是基於程式碼片段的,這和我們作業系統學習的臨界區概念基本一致,但是與Golang不同,Golang是基於訊息模型的。 一個std::mutex的lock()和unlock
C++11多執行緒的原子操作
原子操作是同時只能有一個執行緒執行一個操作,不用使用互斥量即可實現,但是速度慢,而且一般只支援原生的型別,不夠靈活。更多的用處是作為訊號量進行使用。 示例程式碼,以int為例子: #include <atomic> #include <thread> #i
C++ 11 多執行緒--執行緒管理
說到多執行緒程式設計,那麼就不得不提並行和併發,多執行緒是實現併發(並行)的一種手段。並行是指兩個或多個獨立的操作同時進行。注意這裡是同時進行,區別於併發,在一個時間段內執行多個操作。在單核時代,多個執行緒是併發的,在一個時間段內輪流執行;在多核時代,多個執行緒可以實現真正的並行,在多核上真正獨立的並行執行。
C++11多執行緒程式設計 緒論及總結
C++11多執行緒程式設計 這一系列文章是從 https://thispointer.com/c11-multithreading-tutorial-series/ 轉過來的, 本來想翻譯一下, 但看了些內容, 用詞都不難, 讀英文沒有太大難度, 翻譯過來反而怕用詞不準畫蛇添
C++11多執行緒程式設計 第十章: 使用packaged_task優雅的讓同步函式非同步執行
C++11 Multithreading – Part 10: packaged_task<> Example and Tutorial Varun July 2, 2017 C++11 Multithreading – Part 10: packaged_tas