# Sync

# Введение

Модуль `sync` вводит объекты кросс-платформенной синхронизации в PHP. Именованные и неименованные объекты Mutex, Semaphore, Event, Reader-Writer и именованные объекты Shared Memory обеспечивают синхронизацию на уровне ОС как на платформах с поддержкой интерфейса POSIX (например, Linux), так и на Windows-платформах.

Автоматическая очистка накопленных объектов синхронизации происходит во время размонтирования модуля. Это означает, что если PHP преждевременно завершает выполнение скрипта (например, при превышении времени выполнения скрипта), объекты не останутся в неизвестном состоянии. Единственное исключение из правила — сбой самого PHP (например, при переполнении внутреннего буфера).

Безымянные объекты синхронизации за пределами многопоточного сценария широко не применяют. Безымянные объекты полезнее в сочетании с PECL-модулем pthreads.

> Замечание: Именованные объекты требуют дополнительной осторожности при работе в системах. Если объект создаётся с конкретным набором параметров, требуется создавать объект с этими параметрами, иначе появляется риск, что объект окажется в несогласованном состоянии до следующей перезагрузки или пока системный администратор не наведёт порядок.

- Установка и настройка
  - Требования
  - Установка
- SyncMutex — Класс SyncMutex
  - SyncMutex::__construct — Создаёт новый объект SyncMutex
  - SyncMutex::lock — Ждёт эксклюзивной блокировки
  - SyncMutex::unlock — Разблокирует мьютекс
- SyncSemaphore — Класс SyncSemaphore
  - SyncSemaphore::__construct — Создаёт новый объект SyncSemaphore
  - SyncSemaphore::lock — Уменьшает счёт семафора или ждёт
  - SyncSemaphore::unlock — Увеличивает счёт семафора
- SyncEvent — Класс SyncEvent
  - SyncEvent::__construct — Создаёт новый объект SyncEvent
  - SyncEvent::fire — Запускает/устанавливает событие
  - SyncEvent::reset — Сбрасывает ручное событие
  - SyncEvent::wait — Ожидает запуска/установки события
- SyncReaderWriter — Класс SyncReaderWriter
  - SyncReaderWriter::__construct — Создаёт новый объект SyncReaderWriter
  - SyncReaderWriter::readlock — Ожидает блокировки чтения
  - SyncReaderWriter::readunlock — Снимает блокировку чтения
  - SyncReaderWriter::writelock — Ожидает эксклюзивной блокировки записи
  - SyncReaderWriter::writeunlock — Снимает блокировку записи
- SyncSharedMemory — Класс SyncSharedMemory
  - SyncSharedMemory::__construct — Создаёт новый объект SyncSharedMemory
  - SyncSharedMemory::first — Проверяет, является ли объект первым общесистемным экземпляром именованной разделяемой памяти
  - SyncSharedMemory::read — Копирует данные из именованной разделяемой памяти
  - SyncSharedMemory::size — Возвращает размер именованной разделяемой памяти
  - SyncSharedMemory::write — Копирует данные в именованную разделяемую память

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