1. 问题的引入 1.1. 多线程带来的三个问题 在多线程编程下,程序的运行结果可能并不如我们所预料的一致。这主要是由以下三种原因导致的: 1.1.1. 非原子操作 原子操作(atomic operation)指不会被线程调度机制中断的一个或一系列操…
C++ hash table and related stuff 1. 引入 主要涉及的模板类有set/unordered_set/map/unordered_map。其中,无unordered前缀的版本(即set和map)均内部实现红黑树,而uno…