2017-04-10 67 views
-2

我有一个要求,其中一个int数组假设要在20个线程中共享。线程可以对数组值执行递增/递减。一个数组来存储原子int

最初我使用mutex锁定/解锁阵列进行同步共享。它的工作,但它不是安全的。因此计划切换到std::atomic

是否有使用,我可以创造这样

std::array<std::atomic<int>, 10> array; 

OR 其中“INT-原子值的阵列”可制作任何其他方式的方法吗?

+3

什么是*执行安全*? – NathanOliver

+0

当你试图做你建议的事情时发生了什么? –

+1

'std :: array ,10> array;'是有效的。 – Jarod42

回答

1

它得到了解决与下面的代码:

std::array<std::atomic<int>, 10> array={}; 

我是越来越编译器的问题,但设置标志,并库,用于C++ 11后,它得到了解决。

感谢您的所有意见。