РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1066 of 1361 menu

Метод isAcquired

Метод isAcquired класса Lock возвращает true, если блокировка была успешно захвачена через метод acquire, и false в противном случае. Метод не принимает параметров и не изменяет состояние блокировки - он лишь сообщает, владеет ли текущий процесс данной блокировкой.

Этот метод удобно использовать для проверки перед выполнением критической секции кода, чтобы не запускать её повторно, если блокировка уже удерживается.

Синтаксис

public function isAcquired(): bool

Пример

Давайте создадим блокировку через LockFactory и проверим её состояние до и после захвата:

<?php namespace App\Service; use Symfony\Component\Lock\LockFactory; use Symfony\Component\Lock\Store\InMemoryStore; class LockService { public function check(): void { $factory = new LockFactory(new InMemoryStore()); $lock = $factory->createLock('article'); echo $lock->isAcquired() ? "acquired" : "not acquired"; $lock->acquire(); echo $lock->isAcquired() ? "acquired" : "not acquired"; } } ?>

Результат выполнения кода:

"not acquired" "acquired"

Пример

Давайте проверим состояние блокировки после её освобождения через метод release:

<?php namespace App\Service; use Symfony\Component\Lock\LockFactory; use Symfony\Component\Lock\Store\InMemoryStore; class LockService { public function check(): void { $factory = new LockFactory(new InMemoryStore()); $lock = $factory->createLock('article'); $lock->acquire(); echo $lock->isAcquired() ? "acquired" : "not acquired"; $lock->release(); echo $lock->isAcquired() ? "acquired" : "not acquired"; } } ?>

Результат выполнения кода:

"acquired" "not acquired"

Смотрите также

  • класс Lock,
    который представляет собой блокировку ресурса
  • метод acquire,
    который захватывает блокировку
  • метод release,
    который освобождает блокировку
  • метод refresh,
    который продлевает время удержания блокировки
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить