1つのチャンネルに9 E2Eビデオ(ハーブサッターが入っています)はC++で0xの場合はatomic<int>
number++
です。誰かがそれが最終的なC++ 11標準の仕組みであることを確認できますか?std :: atomicの++アトミックです<int>
9
A
答えて
14
標準はであり、すべての標準積分特殊化atomic<T>
のすべての操作はアトミックです。
を含む式はすべてアトミックであることを意味するものではありません。
number = number * 2;
二つの動作です:
temporary = number * 2;
number = temporary;
それらのそれぞれは、原子ですが、一緒にそうではありません。これはトランザクション/クリティカルセクションのためのものです。
7
はい。 atomic<int> operator++
は、アトミック操作であるatomic<int>::fetch_add
を使用します。
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdfp。 11238
関連する問題
- 1. pre-increment対std :: atomicのポストインクリメント<int>
- 2. InterlockedCompareExchange64とstd :: atomic compare_exchange
- 3. sig_atomic_tとstd :: atomic <>は入れ替え可能です
- 4. std :: atomic memory barrierの理解
- 5. gd ++のstd :: atomicサポート4.4.3
- 6. std :: atomic with custom class(C++ 11)
- 7. スレッドセーフstd :: atomic <vector<int>>を作成できますか?
- 8. ビット単位のANDとstd :: atomic <bool>
- 9. C++ 11 <atomic>を使用して整数へのポインタのアトミックなインクリメントを実装する方法は?
- 10. 古典的なコンパイラでstd :: atomicやboost :: atomicを使用するには?
- 11. のstd ::アトミックとstd :: lock_guardまたは唯一のstd :: lock_guard
- 12. `std :: mutex`との同期が` std :: atomic(memory_order_seq_cst) `よりも遅いのですか?
- 13. std :: atomic <int> - ロードして原子的に0にリセットしますか?
- 14. std :: atomicは揮発性であるべきですか?
- 15. なぜsizeof(std :: mutex)== 40(gcc、clang、icc)ですか? <code>sizeof(std::atomic<bool>)==1</code>ではなく
- 16. std :: atomicを使用した正確性<bool>とstd :: mutexの組み合わせ
- 17. std :: atomicはデクリメントされたインクリメントをキャンセルできますか?
- 18. std :: atomic :: operator ++は本当に値で復帰しますか?
- 19. std :: vector <std :: atomic_bool>のサイズを変更してすべてのアトミックなブールに割り当てます
- 20. C++アトミック変数とは何ですか?私はそれが特別な機械語命令(すなわちロックアドオン)のいくつかの並べ替えを生成し、それが結果として、あなたがする必要はありませんで収集したものを他の質問を読んで<a href="http://en.cppreference.com/w/cpp/atomic/atomic" rel="nofollow noreferrer">http://en.cppreference.com/w/cpp/atomic/atomic</a></p> <p>:
- 21. `std :: shared_ptr`のコピーコンストラクタは` reset() `に対してアトミックですか?
- 22. std :: cout << xの間のdiffrenceは何ですか;とstd :: cout << x << std :: endl ;?
- 23. std :: operator <<とstd :: ostream :: operator <<
- 24. sizeof(std :: atomic <integer type>)== sizeof(整数型)は保証されていますか?
- 25. std :: unique()をstd :: vectorで使用する<std :: unordered_set <T>>
- 26. std :: shared_ptr <std :: vector <double>>
- 27. std :: shared_ptr << std :: vector <double>>を関数に渡す
- 28. std ::組み込み型のアトミック - 非ロックフリーと些細なデストラクタ?
- 29. ユニオンを介したアトミックなアトミックなアクセス
- 30. std :: vector <std::string>クラッシュ
so number = number * 2;数字=数字+47。アトミックですか? – NoSenseEtAl
'atomic'に対して*定義されたすべての操作は、 'number * = 2;'や 'number + = 47;'のようにアトミックです。 –
number = number * 2は* 2 *演算です。 *それぞれの原子は原子ですが、一緒になっていません。これが「トランザクション」の目的です。 – spraff