Thread support library
线程支持库
C++包括对线程、互斥、条件变量和期货的内置支持。
螺纹
线程使程序能够跨多个处理器核心执行。
在标头中定义<thread>
*。
线程%28C++11%29管理单独的线程%28class%29
管理当前线程的函数
在命名空间中定义[医]螺纹
产率%28C++11%29建议重新安排线程的执行时间%28功能%29
弄到[医]ID%28C++11%29返回当前线程%28函数%29的线程id
睡眠[医]对于%28C++11%29,在指定的持续时间内停止当前线程的执行
睡眠[医]直到%28C++11%29停止当前线程的执行,直到指定的时间点%28功能%29
缓存大小访问
在标头中定义<new>
*。
硬件[医]破坏性[医]干扰[医]尺寸硬件[医]建设性[医]干扰[医]大小%28C++17%29分钟偏移以避免错误共享最大偏移量以促进真正共享%28常量%29
互斥
互斥算法防止多个线程同时访问共享资源。这样可以防止数据竞争,并支持线程之间的同步。
在标头中定义<mutex>
*。
互斥量%28C++11%29提供基本互斥设施%28类%29
定时[医]互斥锁%28C++11%29提供互斥功能,它使用超时%28class%29实现锁定
递归[医]Mutex%28C++11%29提供了互斥功能,可以通过同一个线程%28class 29递归地锁定
递归[医]定时[医]互斥对象%28C++11%29提供了互斥功能,可以通过同一个线程递归地锁定,并通过超时%28class 29实现锁定。
在头<共享中定义[医]互斥>
共享[医]互斥服务器%28C++17%29提供共享互斥设备%28class%29
共享[医]定时[医]互斥服务器%28C++14%29提供共享互斥设备%28class%29
通用互斥管理
在标头中定义<mutex>
锁[医]保护%28C++11%29实现严格基于范围的互斥拥有包装器%28类模板%29。
范围[医]锁%28C++17%29死锁-避免多重互斥类型的Raii包装器%28类模板%29
独树一帜[医]锁%28C++11%29实现可移动互斥拥有包装器%28类模板%29
共享[医]锁%28C++14%29实现可移动共享互斥锁所有权包装%28类模板%29
推迟[医]锁[医]试试看[医]到[医]锁[医]采行[医]锁[医]T%28C++11%29%28C+11%29%28C+11%29标签类型用于指定锁定策略%28class%29
推迟[医]锁[医]到[医]锁具[医]锁%28C++11%29%28C+11%29%28C+11%29个标签常量用于指定锁定策略%28常数%29
通用锁算法
试一试[医]锁%28C++11%29尝试通过多次调用获得互斥的所有权[医]锁%28功能模板%29
锁%28C++11%29锁指定互斥锁,如果有的话块不可用%28功能模板%29
打一次电话
一次[医]标志%28C++11%29助手对象以确保调用[医]一次只调用一次函数%28class%29
打电话[医]一旦%28C++11%29只调用一次函数,即使从多线程调用了%28函数模板%29
条件变量
条件变量是允许多个线程相互通信的同步原语。它允许一定数量的线程等待%28,可能会有超时%29,以便从另一个线程通知它们可能继续进行。条件变量总是与互斥体相关联。
在标头<条件中定义[医]变量>
*。
条件[医]变量%28C++11%29提供了与std::UNIQUE关联的条件变量[医]锁%28级%29
条件[医]变量[医]任何%28C++11%29都提供与任何锁类型%28class%29相关联的条件变量
通知[医]全[医]在[医]螺纹[医]出口%28C++11%29安排呼叫通知[医]当该线程完全完成%28函数%29时,所有这些都将被调用
CV[医]状态%28C++11%29列出了状态变量%28 enum%29上计时等待的可能结果
期货
标准库提供了获取返回的值和捕获异步任务%28i.e引发的异常的工具。在单独线程%29中启动的函数。这些值在共享状态
,其中异步任务可以写入其返回值或存储异常,并且可以检查、等待或以其他方式由包含std::future
或std::shared_future
那个引用那个共享状态
。
在标头中定义<future>
*。
承诺%28C++11%29存储异步检索%28类模板%29的值
包装[医]任务%28C++11%29包一个函数来存储异步检索%28class模板%29的返回值
未来的%28C++11%29等待异步设置的值%28类模板%29
共享[医]未来的%28C++11%29等待一个值%28可能被异步设置的其他期货%29引用
异步%28C++11%29在新线程%29中异步运行函数%28,并返回包含结果%28函数模板%29的std::期货
启动%28C++11%29指定STD的启动策略::异步%28 enum%29
未来[医]状态%28C++11%29指定对std::期货和std::Shared执行计时等待的结果。[医]未来%28%29
未来错误
未来[医]错误%28C++11%29报告与期货相关的错误或承诺%28C++11%29
未来[医]类别%28C++11%29标识未来错误类别%28功能%29
未来[医]ERRC%28C++11%29标识未来错误代码%28 enum%29
另见
C线程支持库文档
*。
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。