<thread>

<thread>

std::thread

class thread;
线程
表示独立线程的类

所谓线程,是指在多线程环境中,可以与其它指令序列并发执行,同时共享相同地址空间的指令序列。

一个已初始化的thread对象代表一个活动的线程;这样的thread对象是可join的,并且有一个唯一的线程id

默认构造的(未初始化的)thread对象是不可join的,并且其线程id对所有不可join的线程都是公共的。

一个可join的线程,如果被移动赋值,或者对其调用了joindetach,则会变为不可join的

成员类型


成员函数


非成员重载


示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// 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;
}

输出
main, foo and bar now execute concurrently...
foo and bar completed.