Senior
What thread synchronization methods and mechanisms do you know in Java?
sobes.tech AI
Answer from AI
In Java, the following main methods and mechanisms are used for thread synchronization:
- Keyword
synchronized— locking methods or code blocks to ensure mutual exclusion. - Object methods
wait(),notify(),notifyAll()— for organizing interaction between threads through monitors. - Classes from the
java.util.concurrentpackage:ReentrantLock— a more flexible lock with the ability to attempt to acquire and set timeouts.Semaphore— to limit the number of threads executing a certain section of code simultaneously.CountDownLatch,CyclicBarrier— for coordinating the start or completion of threads.ConcurrentHashMap,BlockingQueue— thread-safe collections.
- Atomic classes from
java.util.concurrent.atomic— for lock-free operations, e.g.,AtomicInteger.
Example of using synchronized:
public class Counter {
private int count = 0;
public synchronized void increment() {
count++;
}
public synchronized int getCount() {
return count;
}
}
This approach guarantees that changes to the variable count are atomic and visible to all threads.