Назад к вопросам
Junior — Middle
59
Использовали ли вы механизм ReentrantLock в своих проектах для управления потоками?
Ответ от нейросети
sobes.tech AI
Да, ReentrantLock — это реализация блокировки с возможностью повторного входа, которая используется для управления доступом к общим ресурсам в многопоточных приложениях.
Отличия от synchronized:
- Можно пытаться захватить блокировку с таймаутом или без блокировки (tryLock).
- Позволяет более гибко управлять блокировками (например, разблокировать в другом методе).
Пример использования ReentrantLock:
import java.util.concurrent.locks.ReentrantLock;
ReentrantLock lock = new ReentrantLock();
public void safeMethod() {
lock.lock();
try {
// критическая секция
} finally {
lock.unlock();
}
}
Использовал ReentrantLock для управления конкурентным доступом, когда нужна была большая гибкость, чем предоставляет synchronized.