确保模板对象的线程安全
标准模板库中的以下头可重入:
- 个算法
- deque
- 可运行
- iterator
- list
- MAP
- 内存
- 数值
- queue
- set
- stack
- string
- unordered_map
- unordered_set
- 公用事业
- valarray
- 向量
XL C/C++ 编译器支持在您可以安全地同时从多个线程中读取单个对象的情况下进行重新传递。 这种程度的再生性是内在的。 不使用锁定或其他全局分配的资源。
但是,在以下情况下,头不可重入:
- 单个容器对象由多个线程同时写入。
- 单个容器对象在一个线程中写入,而在一个或多个其他线程中读取。
如果多个线程写入单个容器,或者当其他线程从该容器中读取时,单个线程写入单个容器,那么您负责序列化对此容器的访问。 如果从单个容器读取多个线程,并且没有进程写入该容器,那么无需序列化。