# Sync

# Introduction

L'extension `sync` introduit la synchronisation d'objets cross-plateforme en PHP. Les Mutex nommés ou non, les sémaphores, les événements, les objets de lecture-écriture et la mémoire partagée profiteront d'une synchronisation au niveau de l'OS autant sur les systèmes POSIX (c.-à-d. Linux) et sur les systèmes Windows.

Un nettoyage automatique des objets ayant obtenu une synchronisation a lieu lors du démontage de l'extension. Cela signifie que si PHP termine prématurément un script (c.-à-d. le script dépasse sa durée maximale d'exécution), les objets ne seront pas laissés dans un état inconnu. La seule exception à ce mécanisme est si PHP lui-même crash (c.-à-d. un dépassement de buffer interne).

La synchronisation des objets non nommés n'a pas d'utilité en dehors d'un scénario multithreadé. Les objets non nommés sont plus utiles en conjonction de l'extension PECL pthreads.

> Note: Les objets nommés requièrent une attention supplémentaire pour être utilisés sur tous les systèmes. Si un objet est instancié avec un jeu spécifique de paramètres, il doit toujours être instancié avec ces paramètres ou l'objet se terminera probablement dans un statut incohérent jusqu'au prochain redémarrage ou jusqu'à ce qu'un administrateur ne les nettoie.

- Installation/Configuration
  - Pré-requis
  - Installation
- SyncMutex — La classe SyncMutex
  - SyncMutex::__construct — Construit un nouvel objet SyncMutex
  - SyncMutex::lock — Obtient un verrou exclusif
  - SyncMutex::unlock — Déverrouille le mutex
- SyncSemaphore — La classe SyncSemaphore
  - SyncSemaphore::__construct — Construit un nouvel objet SyncSemaphore
  - SyncSemaphore::lock — Décrémente le compteur de l'objet SyncSemaphore ou attend
  - SyncSemaphore::unlock — Incrémente le compteur de l'objet SyncSemaphore
- SyncEvent — La classe SyncEvent
  - SyncEvent::__construct — Construit un nouvel objet SyncEvent
  - SyncEvent::fire — Lance/définit l'événement
  - SyncEvent::reset — Réinitialise manuellement un événement
  - SyncEvent::wait — Attend que l'objet SyncEvent ne soit lancé
- SyncReaderWriter — La classe SyncReaderWriter
  - SyncReaderWriter::__construct — Construit un nouvel objet SyncReaderWriter
  - SyncReaderWriter::readlock — Obtient un verrou de lecture
  - SyncReaderWriter::readunlock — Libère un verrou de lecture
  - SyncReaderWriter::writelock — Obtient un verrou d'écriture exclusif
  - SyncReaderWriter::writeunlock — Libère un verrou d'écriture
- SyncSharedMemory — La classe SyncSharedMemory
  - SyncSharedMemory::__construct — Construit un nouvel objet SyncSharedMemory
  - SyncSharedMemory::first — Vérifie si l'objet est la première instance dans tout le système de la mémoire partagée nommée
  - SyncSharedMemory::read — Copie des données de la mémoire partagée nommée
  - SyncSharedMemory::size — Renvoie la taille de la mémoire partagée nommée
  - SyncSharedMemory::write — Copie les données dans la mémoire partagée nommée

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