# Sync

# Introdução

A extensão `sync` introduz objetos de sincronização multiplataforma no PHP. Objetos de Mutex, Semaphore, Event, Reader-Writer e Shared Memory nomeados e não nomeados fornecem sincronização em nível de sistema operacional em plataformas POSIX (por exemplo, Linux) e Windows.

A limpeza automática de objetos de sincronização adquiridos ocorre durante a desmontagem da extensão. Isso significa que se o PHP encerrar prematuramente um script (por exemplo, o tempo de execução do script for excedido), os objetos não serão deixados em um estado desconhecido. A única exceção a isso é se o próprio PHP travar (por exemplo, uma sobrecarga de buffer interna).

Objetos de sincronização não nomeados não têm muita utilidade fora de um cenário multithread. Objetos não nomeados são mais úteis em conjunto com a extensão pthreads do PECL.

> Nota: Objetos nomeados requerem cuidados adicionais para serem usados em todos os sistemas. Se um objeto for instanciado com um conjunto específico de parâmetros, ele sempre deve ser instanciado com esses parâmetros, caso contrário, o objeto provavelmente acabará em um estado inconsistente até a próxima reinicialização ou até que um administrador de sistema limpe a bagunça.

- Instalação/Configuração
  - Dependências
  - Instalação
- SyncMutex — A classe SyncMutex
  - SyncMutex::__construct — Constrói um novo objeto SyncMutex
  - SyncMutex::lock — Aguarda um bloqueio exclusivo
  - SyncMutex::unlock — Destrava o mutex
- SyncSemaphore — A classe SyncSemaphore
  - SyncSemaphore::__construct — Constrói um novo objeto SyncSemaphore
  - SyncSemaphore::lock — Diminui a contagem do semáforo ou espera
  - SyncSemaphore::unlock — Aumenta a contagem do semáforo
- SyncEvent — A classe SyncEvent
  - SyncEvent::__construct — Constrói um novo objeto SyncEvent
  - SyncEvent::fire — Ativa/configura o evento
  - SyncEvent::reset — Redefine um evento manual
  - SyncEvent::wait — Espera o evento ser ativado/configurado
- SyncReaderWriter — A classe SyncReaderWriter
  - SyncReaderWriter::__construct — Constrói um novo objeto SyncReaderWriter
  - SyncReaderWriter::readlock — Aguarda um bloqueio de leitura
  - SyncReaderWriter::readunlock — Libera um bloqueio de leitura
  - SyncReaderWriter::writelock — Aguarda um bloqueio de gravação exclusivo
  - SyncReaderWriter::writeunlock — Libera um bloqueio de gravação
- SyncSharedMemory — A classe SyncSharedMemory
  - SyncSharedMemory::__construct — Constrói um novo objeto SyncSharedMemory
  - SyncSharedMemory::first — Verifica se o objeto é a primeira instância de todo o sistema de memória compartilhada nomeada
  - SyncSharedMemory::read — Copia dados da memória compartilhada nomeada
  - SyncSharedMemory::size — Retorna o tamanho da memória compartilhada nomeada
  - SyncSharedMemory::write — Copia dados para memória compartilhada nomeada

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