我有一个要求,其中一个int数组假设在20个线程中共享。 线程可以对数组值执行递增/递减。
最初我在阵列上使用mutex
锁定/解锁来进行同步共享。它有效,但它不是安全的执行。因此,计划切换到std::atomic
。
有没有办法可以创建像
这样的东西std::array<std::atomic<int>, 10> array;
OR 任何其他方式,其中&#34;一个原子价值数组&#34;可以创建吗?
答案 0 :(得分:1)
以下代码解决了这个问题:
std::array<std::atomic<int>, 10> array={};
我遇到编译器问题,但在为c ++ 11设置标志和库之后,它得到了解决。
感谢您的所有评论。