class thread;
Thread:
表示一个独立的执行线程类。
在多线程环境中,一个线程的指令执行在同一个地址空间是并发的。意思是不同线程可共享同一个地址空间并且能够各自执行自己的指令而不会相互干扰,在线程自己看来好像是独占该地址空间。
一个已经初始化的线程对象表示的是一个激活的执行过程。这样的线程处于joinable状态,并且拥有一个独一无二的线程id。
一个默认构造(非初始化的)的线程对象不会处于joinable状态,并且它的线程id是和所有非joinable状态的线程一样。
一个joinable状态的线程如果被赋值给了其他线程(调用thread::operator=时)或者调用了join或detach时,会变成非joinable状态。
成员类型:
id:线程id
native_handle_type:本地句柄类型
成员函数:
(constructor):构造线程
(destructor):析构线程
operator=:移动赋值线程
get_id:获取线程id
joinable:检测是否处于joinable装填
join:连接线程
detach:分离线程
swap:调换线程
native_handle:获取本地句柄
hardware_concurrency:检测硬件并发
非成员函数重载:
swap(thread)
实例:
#include<stdafx.h>
#include<iostream>
#include<thread>
void foo()
{
std::cout << "in foo function now...\n";
}
void bar(int x)
{
std::cout << "in bar function now...\n";
}
int main()
{
std::thread first(foo); //创建新线程 调用foo函数
std::thread second(bar, 0);// 创建新线程 调用bar函数
std::cout << "main, foo and bar now execute concurrently...\n";
// 同步线程
first.join();
second.join();
std::cout << "foo and bar completed.\n";
getchar();
return 0;
}
结果: