Sobes.tech
Junior — Middle

Peux-tu nommer des méthodes alternatives pour réaliser la synchronisation des threads, similaires à synchronized ?

sobes.tech IA

Réponse de l'IA

В Java, помимо ключевого слова synchronized, существуют альтернативные способы синхронизации потоков:

  • Класс ReentrantLock из пакета java.util.concurrent.locks — более гибкий механизм блокировки с возможностью попытки захвата блокировки и таймаутом.

  • Использование volatile для обеспечения видимости изменений переменных между потоками (не обеспечивает атомарность).

  • Классы из пакета java.util.concurrent, например, Semaphore, CountDownLatch, CyclicBarrier — для более сложной координации потоков.

  • Методы wait(), notify(), notifyAll() для взаимодействия потоков через монитор объекта.

Пример с ReentrantLock:

import java.util.concurrent.locks.ReentrantLock;

ReentrantLock lock = new ReentrantLock();

lock.lock();
try {
    // критическая секция
} finally {
    lock.unlock();
}