并发,也就是多个任务同时执行,被广泛用于提高吞吐率(用多个处理器共同完成单个运算)和提高响应速度(允许程序的一部分在等待响应时,另一部分继续执行)。所有现代程序设计语言都提供了对并发的支持。C++标准库并发设施的前身在C++中已应用超过20年了,经过对可移植性和类型安全的改进,成为标准库的一部分,它几乎适用于所有现代硬件平台。标准库并发设施重点提供系统级并发机制,而不是直接提供复杂的高层并发模型。基于标准库并发设施可以构建出这类高层并发模型,并以库的形式提供。
标准库直接支持在单一地址空间内并发执行多个线程。为了实现这一目的,C++提供了一个适合的内存模型(见41.2节)和一套原子操作(见41.3节)。但是,大多数用户眼中的并发就是标准库设施以及建立在之上的其他并发库。因此,本节将简要介绍一些关键的标准库并发设施:thread、 mutex、lock()操作、 packaged_task和 future,给出一些示例。这些特性直接建立在操作系统并发机制之上,与系统原始机制相比,这些特性并不会带来额外的性能开销,当然也不保证性能有显著提升.
