gpt4 book ai didi

c++ - 在不同位置读/写是线程安全的吗?

转载 作者:IT老高 更新时间:2023-10-28 23:09:44 25 4
gpt4 key购买 nike

我猜这是一个初学者的问题,但我找不到这个特定问题的答案:

我有一个大小为 10 且类型为 int 的标准 (c++) vector v。

让线程改变所有偶数位置是否安全(v.at(0) = x; v.at(2) = y; 等等)和另一个线程同时更改奇数位置的所有值(v.at(1) = a; v.at(3)=b;等)?

所以,在这 2 个线程的生命周期内,大小没有变化,没有 push_back() 等。

如果不安全,使用数组会是更好的方法吗?

感谢您的帮助。

最佳答案

vector 不提供任何线程安全保证,因此从技术上讲,答案是否定的。

在实践中,您应该能够侥幸成功...直到有人(可能是您)在程序的某个角落进行了微小的更改,然后一切都崩溃了。在任何重要的程序中这样做我都不会感到舒服。

关于c++ - <vector> 在不同位置读/写是线程安全的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6455144/

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