简述
C++11中加入了头文件,此头文件主要声明了std::thread线程类。C++11的标准类std::thread对线程进行了封装。
C++11所定义的线程是和操作系统的线程一一对应的,也就是说我们生成的线程都是直接接受操作系统的调度的,一个进程所能创建的线程数目以及一个操作系统所能创建的总的线程数据等都由运行时操作系统限定。
Thread
std::thread(class)
生成单个可执行线程,可以在多线程环境中与其他线程并发执行,同时共享相同的地址空间。初始化的线程对象拥有唯一的线程id,状态为joinable;未初始化的线程对象状态为non-joinabe,与其他non-joinable的线程对象共用通用的线程id。线程对象从joinable到non-joinable有以下两种途径:1)通过move被转移; 2)线程调用join或者detach函数。
线程构造(constructor)
std::thread 构造
(1). 默认构造,创建一个空的thread对象,状态non-joinable。 (2). 初始化构造,传递功能函数fn和参数args,状态joinable。创建成功线程立即启动。 (3). 拷贝构造函数(被禁用),意味着 thread 不可被拷贝构造。 (4). 移动构造,传递线程x的句柄。构造成功后x置空,等同于(1)。
实例:
#include <iostream>
#include <
|