2017-04-10 22 views
-2

私は20のスレッド内でintの配列を共有する必要があるという要件がありました。 スレッドは、配列値のインクリメント/デクリメントを実行できます。アトミックintを格納する配列

最初に私はmutexを使って同期共有用のロック/アンロックを行った。それは機能しましたが、それは実行安全ではありません。だからstd::atomicに切り替える予定です。

私は「INT-原子値の配列は、」作成することができ、他の方法を

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

OR のようなものを作成することができた使用方法はありますか?

+3

*実行セーフ*とは何ですか? – NathanOliver

+0

あなたがしていることをやろうとしたとき何が起こったのですか? –

+1

'std :: array 、10> array;'が有効です。 – Jarod42

答えて

1

これは、コードの下で解決しました:

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

私は、コンパイラの問題を得ていたが、C++ 11のフラグとライブラリを設定した後、それが解決しました。

ご意見ありがとうございます。