• 由头文件 <thread>  定义的相关内容: 

    thread 用于管理线程

    管理当前线程的函数

    yield 暗示执行体(如操作系统)重新安排(Reschedule)线程的执行,即主动让出执行权
    get_id 返回当前线程的线程标识号(Thread id)
    sleep_for 使当前线程停止运行,直到过去一段指定的时间(Time duration)
    sleep_until 使当前线程停止运行,直到到达一个指定的时间点(Time point)
  • 由头文件 <mutex>  定义的相关内容:

    mutex 提供了基本的互斥机制
    timed_mutex 提供了使用有超时限制(Timeout)的锁的互斥机制
    recursive_mutex 提供了可被同一线程递归锁定的互斥机制
    recursive_timed_mutex 提供了可被同一线程递归锁定且使用有超时限制的锁的互斥机制
    shared_mutex C++14 提供了共享互斥机制

    常用锁操作

    lock_guard 实现了严格的基于范围(Scope-based)的互斥所有权(Mutex ownership)的封装
    unique_lock 实现了可移动(Movable)的互斥所有权的封装
    shared_lock C++14 实现了可移动的共享互斥所有权的封装
    defer_lock_t 用于指明锁策略(Locking strategy)的标签类型(Tag type)
    try_to_lock_t
    adopt_lock_t
    defer_lock 分别是 defer_lock_ttry_to_lock_t 及 adopt_lock_t 等类型的对象
    try_to_lock
    adopt_lock

    常用锁算法

    try_lock 尝试获得互斥锁的所有权
    lock 加锁指定的互斥锁,如果不能则阻塞(Block)

    单次调用

    once_flag 用于确保 call_once 仅请求调用指定函数一次的辅助对象
    call_once 仅请求调用指定函数一次,即使被多条线程调用
  • 由头文件 <condition_variable>  定义的相关内容:

    condition_variable 提供了与 unique_lock 关联的条件变量
    condition_variable_any 提供了与任意锁类型关联的条件变量
    notify_all_at_thread_exit 提供了一种机制来通知其它所有线程指定线程已经被完全结束
    cv_status 列举了定时等待(Timed wait)指定条件变量可能返回的结果
  • 由头文件 <future> 定义的相关内容:

    promise 保存一个值用于异步获取(Asynchronous retrieval)
    packaged_task 打包一个函数来存储它的返回值,以用于异步获取
    future 等待一个会被异步设置的值
    shared_future 等待一个会被异步设置的值,该值可能被其它 future 等待所使用
    async 异步运行(可能会运行在一个新的线程中)一个函数,且返回一个将会保存结果的 future 对象
    launch 指定 async 的开始策略(Launch policy)
    future_status 指定在 future 及 shared_future 上进行的定时等待(Timed wait)所返回的状态

    future 模式错误

    future_error future 或 promise 可能会抛出的异常
    future_category 标识 future 错误类别(Error category)
    future_errc 标识 future 错误码(Error code)