c ++ 11相当于java atomiclongarray

pol*_*pts 1 c++ java multithreading atomic c++11

我正在研究Java库的C++端口.其中一个问题是我无法找到Java的AtomicLongArray.任何人都知道c ++ 11中是否有任何相同的东西或者如何实现类似的功能?我看过C++ 11原子但找不到任何东西.

R. *_*des 8

AtomicLongArray的文档说:

一个长数组,其中元素可以原子方式更新.有关java.util.concurrent.atomic原子变量属性的描述,请参阅包规范.

这听起来像一个简单的数组std::atomic<long>:

std::array<std::atomic<long>, N> array;
// or, if size is not known at compile time
std::vector<std::atomic<long>> vector(n);
Run Code Online (Sandbox Code Playgroud)

请注意,只有元素是原子的,容器本身不是,所以不要push_back进入向量.