std::thread

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

结果:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值