程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> c++0x 學習筆記之 多線程(1) — 啟動線程

c++0x 學習筆記之 多線程(1) — 啟動線程

編輯:C++入門知識

by feng

編譯環境

編譯器: g++ 4.5

編譯選項: -std=c++0x

鏈接選項: –pthread

完整編譯鏈接命令: g++ –O2 –o example example.cc -std=c++0x -pthread

頭文件:

條目 頭文件 thread <thread> Mutual exclusion <mutex> Condition variables <condition_variable> Futures <future>

a 線程創建

I 從函數中創建

如果想在一個線程中執行一個函數 f ,那麼這個線程可以這樣創建:

? 1 std::thread t( f );

如果函數有參數,那麼直接把參數列在後邊即可:

? 1 2 3 4 5 void hello_from( const char* str const ) {    std::cout << "hello from " << str << " "; } std::thread t( hello_from, "thread t" );

多個參數的函數也是如此:

? 1 2 3 4 5 void max( const long m, const long n ) {     std::cout << "max(" << m << ", " << n << ")=" << (m>n?m:n) << " "; } std::thread t( max, 13, 31 );

可以依此類推到3個、4個……參數的函數情形。

只要不把 main 函數也弄進去,編譯器統統接受:

? 1 2 3 4 void try_start_program_here() {     std::thread t( main ); //error }
II 從對象/仿函數中創建

把仿函數依樣搬進去:

? 1 2 3 4 5 6 7 struct say_hello
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved