C++11中的多執行緒
阿新 • • 發佈:2018-12-09
C++標準庫的多執行緒使用, 示例程式碼如下:
#include<iostream>
#include<thread> //C++11
//#include<exception>
void first()
{
std::cout << "第一個執行緒正在執行..." << std::endl;
}
void second(int i)
{
std::cout << std::endl << "第二個執行緒正在執行..." << std::endl;
std::this_thread::sleep_for(std ::chrono::seconds(10));//等待10秒
//for(int i=0; i < 100000;++i);//等待
std::cout << i << std::endl;
}
int main()
{
try
{
std::thread th_first(first);
std::thread th_second(second,10);
if(th_first.joinable())
th_first.join();
if(th_second.joinable())
th_second.join();
//主執行緒和子執行緒非同步執行
//th_second.detach();//主執行緒和子執行緒分離
std::cout << "first thread id=" << th_first.get_id() << std::endl;
std::cout << "second thread id=" << th_first.get_id() << std::endl;
std::cout << "hardware concurrency's number=" << std ::thread::hardware_concurrency() << std::endl;
}
catch(const std::exception& e)
{
std::cout << e.what() << std::endl;
}
return 0;
}