我知道从std::vector
中并发读取是可能的,没有"坏"后果,因为这个操作可以被认为是线程安全的。
但是对于写入操作,情况并非总是如此。然而,我在思考是否在我的特定场景中也是如此。
我有一个std::vector<bool>
,其中所有元素都初始化为false
,给定一个索引数组,我需要将这些元素(vector[index]
的每个索引)的值从false
更改为true
。
如果我为每个索引使用不同的线程(有可能某些索引具有相同的值),那么这个操作可以被视为线程安全吗?
如果向量是std::vector<int>
(或任何基本类型),并且分配的值始终相同(例如1),这个操作仍然可以被认为是线程安全的吗?