Таким образом, семафоры на PHP очень удобны для синхронизации заданий/задач (процесс, если быть более точным).
Скажем, 1 процесс получает доступ к семафору и начинает делать свою работу (= работа). 3 других процесса запускают sem_acquire(), чтобы получить доступ, в каком-то порядке. Они все блокируются, ожидая, что семафор будет бесплатным и назначен каждому.
Вопрос: в каком порядке будут выполняться 3 отдельных процесса? Общая логика говорит, что они будут выполнены в первый раз (и будут заблокированы), сначала поданы (релиз на работу), но я не видел этого утверждения в официальной документации.
Может ли кто-нибудь подтвердить или исправить меня? Благодарю!
Функция sem_acquire()
PHP sem_acquire()
системный вызов semop()
, который, как представляется, не дает никаких гарантий относительно того, какие процессы ожидания порядка будут получать семафор.