同步操作对于用并发编程来说是很重要的一部分。如果没有同步,线程基本上就是独立的,因其任务之间的相关性,才可作为一个整体直接执行。本章讨论了各式各样的同步操作,有条件变量、future、promise、打包任务、锁存器和栅栏。还讨论了替代同步的解决方案:函数式编程,完全独立执行的函数,不会受到外部环境的影响,以及消息传递模式,以消息子系统为中介,向线程异步的发送消息和持续性方式,其指定了操作的后续任务,并由系统负责调度。
已经讨论了很多C++中的高层工具,现在我们来看一下底层工具是如何工作的:C++内存模型和原子操作。