# Sync

# Introducción

La extensión `sync` introduce la sincronización de objetos multiplataforma en PHP. Los Mutex nombrados o no, los semáforos, los eventos, los objetos de lectura-escritura y la memoria compartida se beneficiarán de una sincronización a nivel del sistema operativo tanto en los sistemas POSIX (i.e. Linux) como en los sistemas Windows.

Una limpieza automática de los objetos que han obtenido una sincronización se realiza al desmontar la extensión. Esto significa que si PHP termina prematuramente un script (i.e. el script excede su tiempo máximo de ejecución), los objetos no se dejarán en un estado desconocido. La única excepción a este mecanismo es si PHP mismo se bloquea (i.e. un desbordamiento de buffer interno).

La sincronización de los objetos no nombrados no tiene utilidad fuera de un escenario multihilo. Los objetos no nombrados son más útiles en conjunción con la extensión PECL pthreads.

> Nota: Los objetos nombrados requieren atención adicional para ser utilizados en todos los sistemas. Si un objeto se instancia con un conjunto específico de parámetros, siempre debe ser instanciado con estos parámetros o el objeto probablemente terminará en un estado no consistente hasta el próximo reinicio o hasta que un administrador los limpie.

- Instalación/Configuración
  - Requerimientos
  - Instalación
- SyncMutex — La clase SyncMutex
  - SyncMutex::__construct — Construye un nuevo objeto SyncMutex
  - SyncMutex::lock — Obtiene un bloqueo exclusivo
  - SyncMutex::unlock — Desbloquea el mutex
- SyncSemaphore — La clase SyncSemaphore
  - SyncSemaphore::__construct — Construye un nuevo objeto SyncSemaphore
  - SyncSemaphore::lock — Disminuye el contador del objeto SyncSemaphore o espera
  - SyncSemaphore::unlock — Incrementa el contador del objeto SyncSemaphore
- SyncEvent — La clase SyncEvent
  - SyncEvent::__construct — Construye un nuevo objeto SyncEvent
  - SyncEvent::fire — Lanza/define el evento
  - SyncEvent::reset — Reinicializa manualmente un evento
  - SyncEvent::wait — Espera a que el objeto SyncEvent sea lanzado
- SyncReaderWriter — La clase SyncReaderWriter
  - SyncReaderWriter::__construct — Construye un nuevo objeto SyncReaderWriter
  - SyncReaderWriter::readlock — Obtiene un bloqueo de lectura
  - SyncReaderWriter::readunlock — Libera un bloqueo de lectura
  - SyncReaderWriter::writelock — Espera un bloqueo de escritura exclusivo
  - SyncReaderWriter::writeunlock — Libera un bloqueo de escritura
- SyncSharedMemory — La clase SyncSharedMemory
  - SyncSharedMemory::__construct — Construye un nuevo objeto SyncSharedMemory
  - SyncSharedMemory::first — Verifica si el objeto es la primera instancia en todo el sistema de la memoria compartida nombrada
  - SyncSharedMemory::read — Copia de datos de la memoria compartida nombrada
  - SyncSharedMemory::size — Devuelve el tamaño de la memoria compartida nombrada
  - SyncSharedMemory::write — Copia los datos en la memoria compartida nombrada

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