线程安全性对标准C++库中
下面的线程安全性规则适用于所有类在标准 C++ 库 (除情况和 iostream 类,如下所述)。
单个对象是要读取的线程安全从多个线程。 例如命名对象的,同时读取一个从线程 1 和从线程 2 是安全的。
如果一个对象对一个线程上编写的,则所有读取,并且必须保护对该对象的编写在相同或其他线程。 例如命名对象的,因此,如果线程 1 对的编写,然后线程 2 必须从读取或写入防止到 A。
读写类型的一个实例是安全的,那么即使另一线程是读取或写入相同类型的不同实例。 例如命名同一类型的对象 A 和 B,是安全的,如果在线程 1 中编写,并 B 是编写的线程 2。
shared_ptr
多个线程能够同时读取和写入不同的 shared_ptr 对象,因此,即使对象是共享所有权的副本。
iostream 类
iostream 类遵循规则和其他类相同,但有一个例外。 是安全的写入从多个线程的对象。 例如,线程 1 中写入 cout 在线程 2. 的同时。 但是,这会产生输出中混合的两个线程。
备注
读取流缓冲区视作一次读取操作。,因为这将类的状态,应视为写入操作。