1. 程式人生 > >C++11中的多執行緒

C++11中的多執行緒

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