Pytania otagowane jako atomic

Operacja atomowa jest niepodzielna. Termin ten jest używany między innymi do opisania transakcji w bazach danych, niskopoziomowych dostępów w programach wielowątkowych i operacji w systemie plików.


7
Jaka jest różnica między atomowym / lotnym / zsynchronizowanym?
Jak atomowy / lotny / zsynchronizowany działa wewnętrznie? Jaka jest różnica między następującymi blokami kodu? 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
Co oznacza „atomowy” w programowaniu?
W książce Effective Java napisano: Specyfikacja języka gwarantuje, że odczyt lub zapis zmiennej jest niepodzielny, chyba że zmienna jest typu longlub double[JLS, 17.4.7]. Co oznacza „atomowy” w kontekście programowania Java lub programowania w ogóle?
274 java  atomic 


3
Czym dokładnie jest std :: atomic?
Rozumiem, że std::atomic<>jest to obiekt atomowy. Ale do jakiego stopnia atomowa? W moim rozumieniu operacja może być atomowa. Co dokładnie oznacza uczynienie obiektu atomowym? Na przykład, jeśli istnieją dwa wątki współbieżnie wykonujące następujący kod: a = a + 12; Czy zatem cała operacja (powiedzmy add_twelve_to(int)) jest atomowa? Czy też są …

13
Czy num ++ może być atomowe dla „int num”?
Ogólnie rzecz biorąc, for int num, num++(lub ++num), jako operacja odczytu-modyfikacji-zapisu, nie jest atomowa . Ale często widzę kompilatory, na przykład GCC , generują dla niego następujący kod ( spróbuj tutaj ): Ponieważ wiersz 5, który odpowiada, num++jest jedną instrukcją, czy możemy wywnioskować, że w tym przypadku num++ jest atomowa …

8
Czy wątek! = Check jest bezpieczny?
Wiem, że operacje złożone, takie jak, i++nie są bezpieczne dla wątków, ponieważ obejmują wiele operacji. Ale czy sprawdzanie referencji z samym sobą jest operacją bezpieczną dla wątków? a != a //is this thread-safe Próbowałem to zaprogramować i używać wielu wątków, ale to się nie udało. Chyba nie mogłem zasymulować wyścigu …

5
Kiedy używać lotnych przy wielowątkowości?
Jeśli istnieją dwa wątki uzyskujące dostęp do zmiennej globalnej, wiele samouczków mówi, że zmienna jest ulotna, aby zapobiec buforowaniu zmiennej przez kompilator w rejestrze, a tym samym niepoprawnej aktualizacji. Jednak dwa wątki, które uzyskują dostęp do wspólnej zmiennej, są czymś, co wymaga ochrony przez mutex, prawda? Ale w takim przypadku …

6
AtomicInteger lazySet vs. set
Jaka jest różnica między metodami lazySeti ? Dokumentacji nie ma wiele do powiedzenia na temat :setAtomicIntegerlazySet Ostatecznie ustawia się na podaną wartość. Wydaje się, że przechowywana wartość nie zostanie natychmiast ustawiona na żądaną wartość, ale zamiast tego zostanie zaplanowana do ustawienia w przyszłości. Ale jakie jest praktyczne zastosowanie tej metody? …
116 java  concurrency  atomic 


4
Czy dołączanie pliku jest atomowe w systemie UNIX?
Ogólnie rzecz biorąc, co możemy przyjąć za pewnik, gdy dołączamy do pliku w systemie UNIX z wielu procesów? Czy można stracić dane (jeden proces nadpisuje zmiany drugiego)? Czy dane mogą zostać zniekształcone? (Na przykład, każdy proces dołącza po jednym wierszu do pliku dziennika, czy jest możliwe, że dwa wiersze ulegną …

3
koszt operacji atomowych
Jaki jest koszt operacji atomowej (dowolnej z opcji porównania i zamiany lub atomowego dodawania / zmniejszania)? Ile cykli zużywa? Czy wstrzyma inne procesory na SMP lub NUMA, czy też zablokuje dostęp do pamięci? Czy opróżni bufor zmiany kolejności w niesprawnym procesorze? Jakie efekty pojawią się w pamięci podręcznej? Interesują mnie …

5
Zrozumienie std :: atomic :: compare_exchange_weak () w C ++ 11
bool compare_exchange_weak (T& expected, T val, ..); compare_exchange_weak()jest jednym z prymitywów wymiany porównawczej udostępnionych w C ++ 11. Jest słaba w tym sensie, że zwraca fałsz, nawet jeśli wartość obiektu jest równa expected. Wynika to z fałszywej awarii na niektórych platformach, na których do zaimplementowania jest używana sekwencja instrukcji (zamiast …

10
Django: Jak mogę zabezpieczyć się przed jednoczesną modyfikacją wpisów w bazie danych
Czy istnieje sposób ochrony przed równoczesnymi modyfikacjami tego samego wpisu w bazie danych przez dwóch lub więcej użytkowników? Dopuszczalne byłoby wyświetlenie komunikatu o błędzie użytkownikowi wykonującego drugą operację zatwierdzenia / zapisania, ale dane nie powinny być po cichu nadpisywane. Myślę, że blokowanie wpisu nie wchodzi w grę, ponieważ użytkownik może …


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.