C++11多线程:概述

C++11提供了对原子性和多线程的支持。主要包含以下五个头文件:<thread>, <mutex>, <condition_variable>, <future><atomic>

 

<thread>:生成单个可执行线程,可以在多线程环境中与其他线程并发执行,同时共享相同的地址空间。主要包含两个内容:std:thread 类和 std:this_thread 命名空间。详细介绍见 C++11多线程:thread头文件

<mutex>:提供了多种互斥操作,可以显式避免数据竞争。主要包含 mutex类型、lock类型 以及 功能函数。详细介绍见 C++11多线程:mutex头文件

<condition_variable>:在特定情况下阻塞线程,直到收到通知重新运行线程,该过程是通过 unique_lock<mutex> 实现的。主要包含了与条件变量相关的功能类:condition_variable 和 condition_variable_any;枚举类:cv_status;以及功能函数 notify_all_at_thread_exit。详细介绍见 C++11多线程:condition_variable头文件

<future>:通过特殊的 provider 进行数据的异步访问,实现线程间的通信。这些 provider(无论是 promise 还是 packaged_task 对象,亦或是对 async 的调用)与 future 对象共享一个共享状态(share state)。详细介绍见 C++11多线程:future头文件

<atomic>:原子类型是对数据的一种封装,可以防止数据竞争,同步多线程间的内存访问。主要包含两个类:atomic 和 atomic_flag,可以在自包含类中实现原子类型的所有特性。同时头文件还声明了一组与C语言原子支持兼容的C风格类型和函数。详细介绍见 C++11多线程:atomic头文件

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值