«atomic» etiketlenmiş sorular

Atomik bir işlem bölünemez. Bu terim, diğerlerinin yanı sıra veritabanlarındaki işlemleri, çok iş parçacıklı programlardaki düşük düzeyli erişimleri ve dosya sistemi işlemlerini tanımlamak için kullanılır.


7
Atomik / uçucu / senkronize arasındaki fark nedir?
Atomik / uçucu / senkronize dahili olarak nasıl çalışır? Aşağıdaki kod blokları arasındaki fark nedir? Kod 1 private int counter; public int getNextUniqueIndex() { return counter++; } Kod 2 private AtomicInteger counter; public int getNextUniqueIndex() { return counter.getAndIncrement(); } Kod 3 private volatile int counter; public int getNextUniqueIndex() { return …

6
Programlamada “atomik” ne demektir?
Etkili Java kitabında şunları belirtir: Dil belirtimi, değişkenin türü longveya double[JLS, 17.4.7] olmadığı sürece bir değişkenin okunması veya yazılmasının atomik olduğunu garanti eder . "Atomik" Java programlama veya genel olarak programlama bağlamında ne anlama gelir?
276 java  atomic 


3
Std :: atomic tam olarak nedir?
Bunun std::atomic<>atomik bir nesne olduğunu anlıyorum . Ama ne ölçüde atomik? Anladığım kadarıyla bir işlem atomik olabilir. Bir nesneyi atom haline getirerek tam olarak ne kastedilmektedir? Örneğin, aşağıdaki kodu aynı anda yürüten iki iş parçacığı varsa: a = a + 12; O zaman tüm operasyon add_twelve_to(int)atomik midir? Veya atomik (yani …

13
Num ++ 'int num' için atomik olabilir mi?
Genel olarak int num, num++(veya ++num) için, bir okuma-değiştirme-yazma işlemi olarak, atomik değildir . Ancak sık sık derleyiciler, örneğin GCC , bunun için aşağıdaki kodu oluşturmak görüyorum ( burada deneyin ): 5. sıraya tekabül eden num++bir talimat olduğundan, bu durumda num++ bunun atomik olduğu sonucuna varabilir miyiz ? Ve eğer …

8
! = Kontrol ipliği güvenli mi?
Birden fazla işlem i++içerdiğinden, bu tür bileşik işlemlerin iş parçacığı için güvenli olmadığını biliyorum . Ancak referansın kendisiyle kontrol edilmesi güvenli bir işlem midir? a != a //is this thread-safe Bunu programlamaya ve birden çok iş parçacığı kullanmaya çalıştım ama başarısız olmadı. Sanırım makinemde yarışı simüle edemedim. DÜZENLE: public class …

5
Çoklu iş parçacığı ile uçucu ne zaman kullanılır?
Genel bir değişkene erişen iki iş parçacığı varsa, birçok öğretici, derleyicinin değişkeni bir kayıtta önbelleğe almasını önlemek için değişkeni uçucu hale getirdiğini ve dolayısıyla doğru şekilde güncellenmediğini söyler. Bununla birlikte, her ikisinin de paylaşılan bir değişkene erişmesi, muteks aracılığıyla koruma gerektiren bir şey değil mi? Ancak bu durumda, iş parçacığı …

6
AtomicInteger lazySet ve set karşılaştırması
lazySetVe setyöntemleri arasındaki fark nedir AtomicInteger? Dokümantasyon hakkında söylenecek çok şey yok lazySet: Sonunda verilen değere ayarlar. Görünüşe göre, saklanan değer hemen istenen değere ayarlanmayacak, bunun yerine gelecekte bir süre ayarlanacak şekilde planlanacak. Peki bu yöntemin pratik kullanımı nedir? Herhangi bir örnek?
116 java  concurrency  atomic 


4
Dosya UNIX'te atomik mi?
Genel olarak, UNIX'teki bir dosyaya birden çok işlemden eklediğimizde neyi doğal kabul edebiliriz? Veri kaybı mümkün mü (bir işlem diğerinin değişikliklerinin üzerine yazıyor)? Verilerin karışması mümkün mü? (Örneğin, her işlem bir günlük dosyasına eklenen başına bir satır ekliyor, iki satırın karışması mümkün mü?) Ek yukarıdaki anlamda atomik değilse, o zaman …

3
atomik operasyon maliyeti
Atomik işlemin maliyeti nedir (karşılaştırma ve değiştirme veya atomik ekleme / azaltma işlemlerinden herhangi biri)? Ne kadar döngü tüketiyor? SMP veya NUMA'daki diğer işlemcileri duraklatacak mı yoksa bellek erişimlerini engelleyecek mi? Sıra dışı CPU'da yeniden sıralama tamponunu temizleyecek mi? Önbellekte ne gibi etkiler olacak? Modern, popüler CPU'larla ilgileniyorum: x86, x86_64, …

5
C ++ 11'de std :: atomic :: Compare_exchange_weak () 'i anlama
bool compare_exchange_weak (T& expected, T val, ..); compare_exchange_weak(), C ++ 11'de sağlanan karşılaştırma-değişim ilkelerinden biridir. Bu var zayıf o nesnenin değeri eşit olsa bile false döndüren anlamında expected. Bunun nedeni, uygulamak için bir dizi talimatın (x86'daki gibi değil) kullanıldığı bazı platformlardaki sahte başarısızlıktır . Bu tür platformlarda, bağlam anahtarı, aynı …


2
Atom vektörünün başlatılması
Düşünmek: void foo() { std::vector<std::atomic<int>> foo(10); ... } Foo'nun içeriği artık geçerli mi? Yoksa açık bir şekilde döngü yapmam ve bunları başlatmam gerekir mi? Godbolt üzerinde kontrol ettik ve iyi görünüyor, ancak standart bu noktada çok karışık gibi görünüyor. Std :: vector yapıcı o ekler diyor varsayılan eklenen örneklerini std::atomic<int>vardır …
12 c++  vector  atomic 

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.