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. InterlockedCompareExchange64とstd :: atomic compare_exchange
- 2. sig_atomic_tとstd :: atomic <>は入れ替え可能です
- 3. gd ++のstd :: atomicサポート4.4.3
- 4. std :: atomic with custom class(C++ 11)
- 5. スレッドセーフstd :: atomic <vector<int>>を作成できますか?
- 6. C++ 11 <atomic>を使用して整数へのポインタのアトミックなインクリメントを実装する方法は?
- 7. `std :: mutex`との同期が` std :: atomic(memory_order_seq_cst) `よりも遅いのですか?
- 8. std :: atomicは揮発性であるべきですか?
- 9. なぜsizeof(std :: mutex)== 40(gcc、clang、icc)ですか? <code>sizeof(std::atomic<bool>)==1</code>ではなく
- 10. std :: atomic :: operator ++は本当に値で復帰しますか?
- 11. std :: cout << xの間のdiffrenceは何ですか;とstd :: cout << x << std :: endl ;?
- 12. sizeof(std :: atomic <integer type>)== sizeof(整数型)は保証されていますか?
- 13. std :: vector <std::string>クラッシュ
- 14. make_pairはアトミックですか?
- 15. クラン、STD ::のshared_ptrとstd ::未満/オペレータ<
- 16. `std :: vector <std :: uint8_t>の高速コピー
- 17. std :: set <VALUE、std :: owner_less <VALUE>>の目的は何ですか?
- 18. 「マージ(のstd ::ベクトル<int>&、のstd ::ベクトル<int>&)
- 19. '演算子<<' のstdで::演算子<< [_Traits =のstdと:: char_traits <char>]
- 20. のstd ::機能とstd :: <code>std::packaged_task</code>が<code>void operator()(ArgTypes... args)</code>をオーバーロードしていますので、私は、<code>std::function<void()></code>の<code>std::vector</code>に<code>std::packaged_task</code>を移動しようとしていますpackaged_task変換
- 21. std :: is_signedの相違点<T>とstd :: numeric_limits <T> :: is_signed?
- 22. std :: std :: stringとstd :: vectorの間の移動<unsigned char>
- 23. 私は2つの機能</p> <pre><code>void foo() { std::cout << 1 << std::endl; } void bar() { std::cout << 2 << std::endl; } </code></pre> <p>をお持ちの場合は2個の関数のC++
- 24. <はstd :: reference_wrapper <T>>はstd ::ベクトルします<T>
- 25. エラー2664 - std :: vector <...>をstd :: tr1 :: shared_ptr
- 26. C++でのshared_ptrのアトミック操作11
- 27. 'this'ポインタを 'std :: stack <_Ty>'から 'std :: stack <_Ty>&'
- 28. std :: functionの比較<>
- 29. std :: atomic_ {char、scharなど}のtypedefは、std :: atomic <T>の基本クラスにtypedefされ、アトム<T>のみでは使用できないのはなぜですか?
- 30. アトミックfetch_addとパフォーマンスの追加
so number = number * 2;数字=数字+47。アトミックですか? – NoSenseEtAl
'atomic'に対して*定義されたすべての操作は、 'number * = 2;'や 'number + = 47;'のようにアトミックです。 –
number = number * 2は* 2 *演算です。 *それぞれの原子は原子ですが、一緒になっていません。これが「トランザクション」の目的です。 – spraff