本章中已经对C++内存模型的底层知识进行详尽的了解,并且了解了原子操作能在线程间提供同步。包含基本的原子类型,由std::atomic<>
类模板和std::experimental::atomic_shared_ptr<>
模板特化后提供的接口;以及对于这些类型的操作,还要有对内存序列选项的各种复杂细节,都由std::atomic<>
类模板提供。
也了解了栅栏,如何让执行序列中,对原子类型的操作成对同步。最后,回顾了本章开始的一些例子,了解了原子操作也可以在不同线程上的非原子操作间使用,并进行有序执行。以及了解了高级工具所提供的同步能力。
下一章中,我们将看到如何使用高级同步工具,以及使用原子操作并发的设计访问高效的容器,我们还将编写一些并行处理数据的算法。