Junior — Middle
83
Тредтерді басқару үшін ReentrantLock қолдану тәжірибеңіз бар ма?
AI-дан жауап
sobes.tech AI
Да, опыт использования 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;
}
}
Такой подход помогает избежать проблем с конкурентным доступом к ресурсам в многопоточной среде.