Bir kanal 9 E2E videosuna (içinde Herb Sutter ile) C++ 0x olarak atomic<int>
atomiktir. Birisi, nihai C++ 11 standardında nasıl olduğunu teyit edebilir (nihai hale getirildiğini iddia etsin :)).Std :: atomic için ++ atomik <int>
9
A
cevap
14
standardı, standardının sonlandırılmış halidir ve atomic<T>
'un tüm standart integral uzmanlıklarındaki her işlem atomiktir.
Bu, standart integralle ilgili atomic<T>
'un atomik olduğu ifadeleri ifadeleri anlamına gelmez.
number = number * 2;
iki operasyon geçerli:
temporary = number * 2;
number = temporary;
Her biri atomik olmakla birlikte değiller. İşlemler/kritik bölümler ne içindir.
7
Evet. atomic<int> operator++
, bir atomik işlem olan atomic<int>::fetch_add
kullanır.
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf s. 1127
İlgili konular
- 1. std :: atomic
- 2. std :: atomik destek g ++ 4.4.3
- 3. std :: atomic <imzasız int>
- 4. std :: atomic <std :: chrono :: high_resolution_clock :: time_point>
- 5. Neden std :: atomic <integral> uzmanlıklarını çarpma ve bölme ataması operatörleri sağlar? std
- 6. std :: atomic <int*> olmalıdır ?: bir karşılaştırma ve takas döngüsü yapmak mı?
- 7. OpenMP atomik?
- 8. C++ 11 Atomik olmayan değişkenler içeren atomik bellek sırası
- 9. Bu değer (std :: atomic <tamsayı türü>) == sizeof (tamsayı türü) olarak garanti edilir mi?
- 10. Std :: atomic <T>'da basit bir spinlock'u nasıl derlerim, böylece derleyici bunu optimize etmez mi?
- 11. C++ atomik ve çapraz iplik görüş
- 12. String s = "foobar" atomik mi?
- 13. Maksimum değeri atomik olarak nasıl güncellerim? Seri kodunda
- 14. Atomic Integer Array
- 15. std :: vector <std :: unique_ptr hatası < T >>
- 16. Atomik artışların düzenli tamsayı artışlarla karşılaştırıldığında ne kadar yavaş olduğunu ölçmek
- 17. MOV x86 komutu C++ 11 memory_order_release atomik deposunu uyguluyor mu?
- 18. Rust'un `Atomic *` türleri neden değeri değiştirmek için değiştirilemeyen işlevler kullanıyor?
- 19. atomik işlemler
- 20. std :: cin.ignore (std :: numeric_limits <std :: streamsize> :: max(), '\ n') #include kullanırken hata <Windows.h>
- 21. Tanımlanmamış şablonun örtük bir örneği 'std :: basic_string <char, std :: char_traits <char>, std :: ayırıcı <char>>'
- 22. rsync işlemleri atomik olarak dosya düzeyinde mi?
- 23. "select_for_update" bir atomik bloktan çağrılıyor TransactionManagementError
- 24. LMDB veritabanı atomik alınıyor ve C
- 25. Gcc atomik yapıları için başlık dosyası
- 26. $ operator ddply atomik vektörler için geçersiz
- 27. Neden OpenMP atomik ve kritik doğru sonucu vermiyor?
- 28. std :: vector <uchar> `std :: ostream` içine nasıl kaydedilir?
- 29. data.frame'in atomik vektöre dönüştürülmesi
- 30. MySQL Atomic UPDATE InnoDB vs MyISAM
çok sayıda = sayı * 2 dir; ve sayı = sayı + 47; ayrıca atomik mi? – NoSenseEtAl
* * için tanımlanan her işlem ' atom '* = 2 sayısı' gibi atomik olduğu; ve 'sayısı + = 47;'. –
numara = sayı * 2 * iki * işlemdir. * Bunların her biri atomiktir, ama birlikte değildirler. "İşlemler" ne içindir. – spraff