Senior
What tools for synchronization are available in Java?
sobes.tech AI
Answer from AI
In Java, the following tools are used for thread synchronization and managing access to shared resources:
- Keyword
synchronized— blocks or methods that provide exclusive access to code. - Classes from the
java.util.concurrent.lockspackage:ReentrantLock— a more flexible alternative tosynchronizedwith the ability to attempt lock acquisition and timeout.ReadWriteLock— separates lock into read and write, allowing multiple threads to read simultaneously.
- Semaphores (
Semaphore) — limit the number of threads executing a certain section of code at the same time. - Barrier synchronizations (
CyclicBarrier,CountDownLatch) — allow threads to wait for each other at certain points. - Atomic classes (
AtomicInteger,AtomicReference, etc.) — provide atomic operations without locks.
Example of using ReentrantLock:
import java.util.concurrent.locks.ReentrantLock;
ReentrantLock lock = new ReentrantLock();
lock.lock();
try {
// critical section
} finally {
lock.unlock();
}