C++11中的线程支持库(Thread support library)
来源:互联网 发布:lnmp环境yum搭建博客 编辑:程序博客网 时间:2024/05/21 12:50
原文:http://en.cppreference.com/w/cpp/thread
Thread support library (线程支持库)
C++包含了对线程、互斥、条件变量和futures的内在支持。
线程
线程使得程序能够跨多个处理器核心执行。
定义在thread头文件中:
thread (C++11) 管理一个单一线程
管理当前线程的函数
定义在this_thread namespace中的:
yield (C++11) 建议实现重新规划线程的执行时机 (suggests that the implementation reschedule execution of threads)get_id (C++11) 返回当前线程的idsleep_for (C++11)停止当前线程的执行,直到指定的时间段之后sleep_until (C++11)停止当前进程的执行,直到指定的时间点缓存尺寸访问 (Cache size access)
定义在 new 头文件中:
hardware_destructive_interference_size (C++17)最小偏移以避免false共享(min offset to avoid false sharing)hardware_constructive_interference_size (C++17)最大偏移以提升true共享(max offset to promote true sharing)互斥 (Mutual exclusion)
互斥算法防止多个线程同时访问共享资源。这防止了数据竞争,提供了对线程间同步的支持。
定义在 mutex 头文件中:
mutex (C++11)提供基本的互斥功能time_mutex (C++11)提供互斥功能,此互斥功能实现了定时器性质的锁recursive_mutex (C++11)提供互斥功能,此互斥功能可以被同一个线程多次递归地锁住recursive_timed_mutex (C++11)提供互斥功能,此互斥功能可以被同一个线程多次递归地锁住,并且实现了带定时器的锁定shared_mutex (C++17)提供共享的互斥功能shared_timed_mutex (C++14) 提供共享的互斥功能普通mutex管理
定义在 mutex 头文件中:
lock_guard (C++11) 实现了一个严格的基于scope的互斥量ownership的封装者(wrapper)unique_lock (C++11)实现了movable的互斥量ownership的封装者(wrapper)shared_lock (C++14)实现了movable的共享的互斥量的ownership的封装者(wrapper)defer_lock_t (C++11)一种标记类型,用以指定锁定策略try_to_lock_t (C++11)同上adopt_lock_t (C++11)同上defer_lock (C++11)标记常量,用以指定锁定策略try_to_lock (C++11)同上adopt_lock (C++11)同上普通锁定算法
try_lock (C++11)通过反复地调用try_lock,试图获得互斥量的所有权lock (C++11)锁定指定的互斥量,如果有的是unavailable,就进入Block状态Call once
once_flag (C++11) 是一个帮助者对象(helper object),用以保证call_once调用该方法仅仅一次call_once (C++11)即使在多个线程中同时调用一个方法,该方法也仅仅被执行一次条件变量 (Condition variable)
条件变量是一个同步原语,它使得多线程可以互相通信。它使得一些线程等待()或者超时另一个线程的通知以使得它们继续。
一个条件变量总是伴随着一个互斥量。
定义在 condition_variable 头文件中:
condition_variable (C++11) 提供一个条件变量,配合使用的是std::unique_lockcondition_vairable_any (C++11)提供一个条件变量,可以配合任意的lock类型notify_all_at_thread_exit (C++11) 当线程结束的时候,规划一个对notify_all的调用cv_status (C++11) 列出等在条件变量Shanghai的可能的结果 (lists the possible results of timed waits on condition variables)Futures
标准库提供一些功能以观察被返回的值以及抓取被异步任务(即:在其他线程启动的函数)所抛出的异常。这些值以一种共享的状态来被传送。在这种共享状态下,异步任务可以写返回值或存储一个异常,而这个值或异常可以被持有std::future或std::shared_future实例的其他线程来检查、等待和操作。
定义在 future 头文件中:
promise (C++11) 为异步的获取而存储一个值packaged_task (C++11)打包一个函数,以便为异步的获取而存储该函数的返回值future (C++11)等待一个被设为异步的值shared_future (C++11)等待一个被设为异步的值(该值可能被其他futures所引用)async (C++11) 异步地运行一个函数(在一个新的线程中),并返回一个含有结果的std::futurelaunch (C++11) 为std::async指定launch的策略future_status (C++11)指定作用在std::future和std::shared_future上的结果Future errors
future_error (C++11) 报告一个关于futures或promises的错误future_category (C++11) 指定该future error的种类future_errc (C++11) 指定该future error的代码 1 0
- C++11中的线程支持库(Thread support library)
- @C++11 Thread support library 概览 线程库中英文对照
- Android设计支持库 Design Support Library
- Android中的support library
- Android中支持库(Support Library)详解
- Android设计支持库(Android Design Support Library)
- android 的 Testing Support Library 测试支持包(库)
- TMS320 C6000系列DSP之芯片支持库(Chip Support Library)
- Android Support Library 介绍~在项目总如何使用android支持库
- Android新提供的测试框架支持库学习 && Testing Support Library
- 【c++】线程thread类
- C++/MFC-线程Thread
- C++:线程(std::thread)
- POCO库 Foundation::Thread模块 多线程与线程池支持
- POCO库 Foundation::Thread模块 多线程与线程池支持
- POCO库 Foundation::Thread模块 多线程与线程池支持
- Support Library
- Support Library
- Bestcoder round#34 解题报告
- xcode 统计代码行数
- 四元数和旋转轴及旋转角度之间的转换理解实例
- Prototype与__proto__
- 如何在C++中播放音频(几行代码搞定)
- C++11中的线程支持库(Thread support library)
- Java通过JDBC连接Mysql数据库的方法和实例【图文说明】
- Android必需了解的东西
- 百度之星初赛A第5题 BD String
- ASP.NET第一个项目,希望我遇到的一些问题对各位会有所帮助
- 指针操作数组的两种方式
- Java垃圾回收机制
- All thing are difficlt before they are easy
- 文章标题