Модуль sync
вводит объекты кросс-платформенной синхронизации в PHP.
Именованные и неименованные объекты Mutex, Semaphore, Event, Reader-Writer и именованные объекты Shared Memory
обеспечивают синхронизацию на уровне ОС как на платформах с поддержкой интерфейса POSIX (например, Linux),
так и на Windows-платформах.
Автоматическая очистка накопленных объектов синхронизации происходит во время размонтирования модуля. Это означает, что если PHP преждевременно завершает выполнение скрипта (например, при превышении времени выполнения скрипта), объекты не останутся в неизвестном состоянии. Единственное исключение из правила — сбой самого PHP (например, при переполнении внутреннего буфера).
Безымянные объекты синхронизации за пределами многопоточного сценария широко не применяют. Безымянные объекты полезнее в сочетании с PECL-модулем pthreads.
Замечание:
Именованные объекты требуют дополнительной осторожности при работе в системах. Если объект создаётся с конкретным набором параметров, требуется создавать объект с этими параметрами, иначе появляется риск, что объект окажется в несогласованном состоянии до следующей перезагрузки или пока системный администратор не наведёт порядок.