除了使用 pthread_create
的方式建立新線程,還可使用 C++11 的線程 thread 類。ios
#include <iostream> #include <thread> #include <chrono> void fun1() { std::this_thread::sleep_for(std::chrono::seconds(20)); } void fun2() { std::this_thread::sleep_for(std::chrono::seconds(30)); } int main() { std::cout << "starting first helper..." << std::endl; std::thread helper1(fun1); std::cout << "starting second helper..." << std::endl; std::thread helper2(fun2); std::cout << "waiting for helpers to finish..." << std::endl; helper1.join(); helper2.join(); std::cout << "done." << std::endl; }
g++ -std=c++11 testThread.cc -o testThread
編譯後運行c++
查看進程和線程 IDthis
titus@T64:~/practice/cpp/demo>ps -eLf | grep "testThread" pid ppid 線程id 線程個數 1033 8083 32033 8083 0 2 10:39 pts/67 00:00:00 ./testThread 1033 8083 32033 8085 0 2 10:39 pts/67 00:00:00 ./testThread 1033 8912 26760 8912 0 1 10:39 pts/8 00:00:00 grep testThread
能夠看到有 testThread 進程在運行,進程中有兩個線程 8083 和 8085 在運行。線程