Spisu treści:
Definicja - Co oznacza Atomic?
Atomic jest zestawem zmiennych klas pakietów java.util.concurrent.atomic, które pomagają w pisaniu algorytmów blokady i oczekiwania w języku Java. Algorytm wymagający tylko częściowych wątków dla ciągłego postępu jest bez blokady. W algorytmie bez czekania wszystkie wątki robią postępy w sposób ciągły, nawet w przypadku awarii lub opóźnienia wątku. Algorytmy blokowania i oczekiwania są również znane jako algorytmy nieblokujące. Algorytmy nieblokujące są używane do planowania procesów i wątków na poziomie systemu operacyjnego i maszyny wirtualnej Java.
Techopedia wyjaśnia Atomic
Wszystkie klasy pakietów java.util.concurrent.atomic mają w swoich nazwach przedrostek „atomowy”. W pakiecie java.util.concurrent.atomic dostępne są różne typy zmiennych atomowych, w tym:
- AtomicBoolean
- AtomicInteger
- AtomicIntegerArray
- AtomicIntegerFieldUpdater
- AtomicLong
- AtomicLongArray
- AtomicLongFieldUpdater
- AtomicReference
Przykładem jest scenariusz, w którym wątek A blokuje. A może uzyskiwać dostęp i wprowadzać zmiany do zmiennych chronionych przez tę blokadę. Jeśli wątek B trzyma tę blokadę po A, tylko B może zobaczyć zmiany A w zmiennych chronionych przez tę konkretną blokadę. Główny problem z blokowaniem występuje, gdy B próbuje uzyskać blokadę utrzymywaną przez A. W takim przypadku B jest blokowany, aby poczekać, aż blokada będzie dostępna. Algorytmy nieblokujące rozwiązują ten problem.
Głównym celem budowy klas atomowych jest wdrożenie nieblokujących struktur danych i powiązanych z nimi klas infrastruktury. Klasy atomowe nie służą jako zamienniki java.lang.Integer i klas pokrewnych. Większość klas pakietów java.util.concurrent używa zmiennych atomowych zamiast synchronizacji, bezpośrednio lub pośrednio. Zmienne atomowe są również używane do osiągnięcia wyższej przepustowości, co oznacza wyższą wydajność serwera aplikacji.
