Sobes.tech
Junior — Middle

Haben Sie Erfahrung in der Verwendung von ReentrantLock zur Steuerung von Threads?

sobes.tech KI

Antwort von 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;
    }
}

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