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;
}