Получает эксклюзивную блокировку для данного ключа

# wincache_lock

(PECL wincache >= 1.1.0)

wincache_lock — Получает эксклюзивную блокировку для данного ключа

### Описание

function wincache_lock(string `$key`, bool `$isglobal` = `false`): bool

Получает эксклюзивную блокировку для данного ключа. Выполнение текущего скрипта будет заблокировано до тех пор, пока блокировка не будет получена. После получения блокировки другие сценарии, которые пытаются запросить блокировку с помощью того же ключа, будут заблокированы до тех пор, пока текущий скрипт не снимет блокировку с помощью wincache_unlock().

Внимание

Использование wincache_lock() и wincache_unlock() может вызвать взаимную блокировку при выполнении скриптов PHP в многопроцессорной среде, такой как FastCGI. Не используйте эти функции, если вы не уверены, что вам это нужно. Для большинства операций с пользовательским кешем эти функции использовать не обязательно.

### Список параметров

`key`

  Имя ключа в кеше для включения блокировки.

`isglobal`

  Определяет, является ли область блокировки общесистемной или локальной. Локальные блокировки относятся к пулу приложений в случае IIS FastCGI или ко всем процессам PHP, которые имеют один и тот же идентификатор родительского процесса.

### Возвращаемые значения

Функция возвращает `true`, если выполнилась успешно, или `false`, если возникла ошибка.

### Примеры

Пример #1 Пример использования wincache_lock()

    <?php
    $fp = fopen("/tmp/lock.txt", "r+");
    if (wincache_lock(“lock_txt_lock”)) { // получить эксклюзивную блокировку
        ftruncate($fp, 0); // обрезать файл
        fwrite($fp, "Напишите что-нибудь здесь\n");
        wincache_unlock(“lock_txt_lock”); // снять блокировку
    } else {
        echo "Не удалось получить блокировку!";
    }
    fclose($fp);
    ?>

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

- wincache_unlock() - Снимает эксклюзивную блокировку данного ключа
- wincache_ucache_set() - Добавляет или перезаписывает переменную в пользовательский кеш
- wincache_ucache_get() - Получает переменную, хранящуюся в пользовательском кеше
- wincache_ucache_delete() - Удаляет переменные из пользовательского кеша
- wincache_ucache_clear() - Удаляет всё содержимое пользовательского кеша
- wincache_ucache_exists() - Проверяет, существует ли переменная в пользовательском кеше
- wincache_ucache_meminfo() - Получает информацию об использовании памяти пользовательского кеша
- wincache_ucache_info() - Получает информацию о данных, хранящихся в пользовательском кеше
- wincache_scache_info() - Получает информацию о файлах, закешированных в кеше сессии

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open