(PHP 4, PHP 5, PHP 7, PHP 8)
sem_get — Получение идентификатора семафора
$key
,$max_acquire
= 1,$permissions
= 0666,$auto_release
= true
sem_get() возвращает идентификатор, который может быть использован для доступа к семафору System V, по заданному значению key
.
Последующие вызовы sem_get() для того же самого ключа будут возвращать другие идентификаторы, однако все они будут ссылаться на один и тот же семафор.
Если key
равен 0
, то для каждого вызова sem_get() создаётся новый приватный семафор.
key
max_acquire
Число процессов, которые могут одновременно использовать семафор задаётся через max_acquire
.
permissions
Права доступа к семафору. В действительности, устанавливается только если процесс является единственным использующим семафор.
auto_release
Определяет, должен ли семафор автоматически освобождаться при завершении работы.
При успешном завершении возвращается положительный идентификатор семафора, или false
в случае возникновения ошибки.
Версия | Описание |
---|---|
8.0.0 | В случае успешного выполнения функция возвращает экземпляр SysvSemaphore; ранее возвращался ресурс (resource). |
8.0.0 | Тип auto_release изменён с целого числа (int) на логическое значение (bool). |
Когда sem_get() используется для доступа к семафору, созданному вне PHP, обратите внимание на то, что этот семафор должен быть создан как набор из трёх семафоров (к примеру, путём указания 3 в качестве параметра nsems
во время вызова C-функции semget()
), в противном случае, PHP не сможет обратиться к семафору.