Junior — Middle
Da li imate iskustva sa korišćenjem ReentrantLock za upravljanje nitima?
sobes.tech АИ
Одговор од АИ
Да, опыт использования ReentrantLock есть. Это класс из java.util.concurrent.locks, который предоставляет более гибкий механизм блокировок по сравнению с synchronized.
Особенности ReentrantLock:
- Позволяет явно захватывать и освобождать блокировку.
- Поддерживает повторный вход (один поток может захватить блокировку несколько раз).
- Можно пытаться захватить блокировку с таймаутом или без блокировки.
Пример использования:
import java.util.concurrent.locks.ReentrantLock;
public class Counter {
private final ReentrantLock lock = new ReentrantLock();
private int count = 0;
public void increment() {
lock.lock();
try {
count++;
} finally {
lock.unlock();
}
}
public int getCount() {
return count;
}
}
Такой подход помогает избежать проблем с конкурентным доступом к ресурсам в многопоточной среде.