使用 C++11 的線程

除了使用 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 在運行。線程

相關文章
相關標籤/搜索