本章主要内容
- 何谓并发和多线程
- 应用程序为什么要使用并发和多线程
- C++的并发史
- 一个简单的C++多线程程序
令C++用户振奋的时刻到了。距初始的C++标准(1998年)发布13年后,C++标准委员会给语言本身,以及标准库,带来了一次重大的变革。新C++标准(也被称为C++11或C++0x)在2011年发布,带来一系列的变革让C++编程更加简单和高效。同时,委员会也确立了一种新的“列车模式”——每三年发布一个新的C++标准。从模式确立之后,委员会发布了两个标准:2014年的C++14标准和2017的C++17标准,以及若干个描述C++标准扩展的技术规范。
其中一个最重要的新特性就是对多线程的支持。C++标准第一次承认多线程在语言中的存在,并在标准库中为多线程提供组件。这意味着使用C++编写与平台无关的多线程程序成为可能,也为可移植性提供了强有力的保证。与此同时,程序员们为提高应用的性能,对并发的关注也是与日俱增,特别在多线程编程方面。C++14、C++17标准,以及一些技术规范,都建立在C++11的基础上,且为C++在多线程和并发支持方面添砖加瓦。
本书是介绍如何使用C++11多线程来编写并发程序,及相关的语言特性和库工具(library facilities)。本书以“解释并发和多线程的含义,为什么要使用并发”作为起始点,在对“什么情况下不使用并发”进行阐述之后,将对C++支持的并发方式进行概述;最后,以一个简单的C++并发实例结束这一章。资深的多线程开发人员可以跳过前面的小节。在后面的几个章节中,会有更多的例子,以便大家对库工具进行更加深入的了解。本书最后,将会给出所有多线程与并发相关的C++标准库工具的全面参考。
问题来了,何谓并发?何谓多线程?