Sobes.tech
Back to questions
Junior — Middle
69

Какими методами можно реализовать механизмы блокировки для защиты ресурсов в совместной работе?

Answer from AI

sobes.tech AI

В Java для реализации механизмов блокировки и защиты ресурсов при совместной работе можно использовать следующие методы:

  • synchronized — ключевое слово для блокировки кода или методов, чтобы только один поток мог выполнять их одновременно.

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

  • ReadWriteLock — позволяет разделять блокировки на чтение и запись, повышая производительность при большом количестве операций чтения.

  • Semaphore — ограничивает количество потоков, которые могут одновременно получить доступ к ресурсу.

  • Atomic переменные из java.util.concurrent.atomic — для атомарных операций без явных блокировок.

Пример использования ReentrantLock:

import java.util.concurrent.locks.ReentrantLock;

ReentrantLock lock = new ReentrantLock();

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