gpt4 book ai didi

c++ - 原子 vector 完全线程安全?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:57:27 24 4
gpt4 key购买 nike

我有一个 std::vector<std::atomic<size_t>> vec。运行安全吗vec[index].fetch_add(1, std::memory_order_release)或在其上存储/加载多个并发线程?我认为应该是这样,因为读取是线程安全的,并且由于原子性,不可能同时从多个线程写入一个条目 - 对吗?

最佳答案

不,一般来说,它不是线程安全的,因为容器本身不是原子的。

也就是说,只要您不更改 vector 中的内容(即做任何使 data() 的返回无效的事情),您就没事。

遗憾的是你不能求助于std::atomic<std::vector<...>>作为std::vector不是可简单复制

关于c++ - 原子 vector 完全线程安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45793411/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com