Jakie metody można zastosować, aby zapewnić bezpieczny dostęp do obiektu lub jego pola z wielu wątków jednocześnie?
sobes.tech AI
Odpowiedź od AI
Aby zapewnić bezpieczny dostęp do obiektu lub jego pola z wielu wątków w Java, używa się różnych metod synchronizacji:
-
Słowo kluczowe
synchronized— można synchronizować metody lub bloki kodu, aby tylko jeden wątek mógł je wykonywać naraz. -
Klasy z pakietu
java.util.concurrent, na przykładReentrantLock— bardziej elastyczny mechanizm blokad. -
Pola Volatile — gwarantują widoczność zmian zmiennej między wątkami, ale nie zapewniają atomowości złożonych operacji.
-
Klasy atomowe (
AtomicInteger,AtomicReferenceitd.) — zapewniają operacje atomowe bez blokad. -
Obiekty niemutowalne — jeśli obiekt jest niezmienny, jest bezpieczny do dostępu z wielu wątków bez synchronizacji.
Przykład z synchronized:
public class Counter {
private int count = 0;
public synchronized void increment() {
count++;
}
public synchronized int getCount() {
return count;
}
}
Taka metoda gwarantuje, że operacje na count będą atomowe i bezpieczne dla wątków.