2017-04-10 69 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後,它得到了解決。

感謝您的所有意見。