Sobes.tech
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;
    }
}

Такой подход помогает избежать проблем с конкурентным доступом к ресурсам в многопоточной среде.