多線程譯文01

包含頭文件#include <thread>ios

 

介紹:函數

thread類表明每一個線程的執行。線程的執行時一系列可以同時執行的指令在相同的共享空間中同時執行。spa

初始化一個thread對象,表明着一個線程開始執行。這是它能夠joinable,而且有一個惟一的線程ID。線程

一個沒有被初始化(使用默認構造函數時)的thread對象,不可以joinable,它的線程ID和其餘全部不可以joinable的線程同樣。
code

當一個線程對象調用join()或者detach()方法後,這個線程對象就變得不可以joinable。對象

 

// thread example
#include <iostream>       // std::cout
#include <thread>         // std::thread

void foo()
{
  // do stuff...
}

void bar(int x)
{
  // do stuff...
}

int main()
{
  std::thread first (foo);     // spawn new thread that calls foo()
  std::thread second (bar,0);  // spawn new thread that calls bar(0)

  std::cout << "main, foo and bar now execute concurrently...\n";

  // synchronize threads:
  first.join();                // pauses until first finishes
  second.join();               // pauses until second finishes

  std::cout << "foo and bar completed.\n";

  return 0;
}

相關文章
相關標籤/搜索