4.5 本章总结

同步操作对于使用并发编写应用来说,是很重要的一部分:如果没有同步,线程基本上就是独立的,也可写成单独的应用,因其任务之间的相关性,它们才可作为一个群体直接执行。本章讨论了各式各样的同步操作,有条件变量、期望值、承诺值、打包任务、锁存器和栅栏机制。也讨论了替代同步的解决方案:函数化模式编程,完全独立执行的函数,不会受到外部环境的影响;还有,消息传递模式,以消息子系统为中介,向线程异步的发送消息;以及持续性方式,其指定了操作的后续任务,并由系统负责调度。

已经讨论了很多C++中的高层工具,现在我们来看一下底层工具是如何工作的:C++内存模型和原子操作。