在线文档教程
C++
线程支持 | Thread support

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::futurestd::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。

http://en.cppreference.com/w/cpp/线程