Question

Je suis nouveau à PHP, pour commencer, j'ai décidé de mettre en œuvre un singleton.

Alors que je suis en mesure de recréer le modèle singleton en php, mais je ne suis pas sûr de savoir comment mettre en œuvre revérifié verrouillage.

est-ce possible / nécessaire en PHP. Je l'ai lu quelque part que PHP n'est pas multithread? Quelqu'un peut-il confirmer?

Si elle est multithread, quelqu'un peut me expliquer comment verrouillage () ou synchronisez () travail en PHP?

Merci, Henry

Était-ce utile?

La solution

Partager rien architecture

  

PHP a Partager rien   Architecture :

     
      
  • Comme HTTP, chaque demande est distincte
  •   
  • données partagées est poussé vers le bas vers la couche de données magasin
  •   
  • Évitez les contrôleurs avant
  •   
     

Cela nous donne:

     
      
  • Capacité à équilibrage de charge
  •   
  • basculement invisible d'un centre de données à un autre
  •   
  • Une meilleure modularisation des applications
  •   
  • Plus facile à développer et déboguer
  •   

verrouillage revérifié

  

mais je ne suis pas sûr de savoir comment mettre en œuvre   une double vérification de verrouillage.

Dans la couche de base de données générale est responsable. MySQL (InnoDB) standard a par exemple la ligne de niveau verrouillage (qui devrait être suffisant pour cela).

  

InnoDB fait un verrouillage au niveau de la ligne   et exécute les requêtes comme non bloquant   lectures cohérentes par défaut, dans le   le style d'Oracle.

Si cela ne suffit pas que SQL a aussi, par exemple transactions pour ce faire.

  

Livres en ligne définit une transaction   une « séquence d'opérations effectuées en tant que   une seule unité logique de travail "

fork

Comme les diapositives dire PHP a une action rien-Architecture (traditionnelle) qui n'implique aussi que PHP ne pas un fil (modèle) . Bien que vous pouvez compiler ( pas activé par défaut ) PHP pour avoir un support des procédés fourche qui peuvent communiquer les uns avec les autres. Lorsque vous compilez également les Semaphore Fonctions vous pouvez faire des choses comme < a href = "http://www.php.net/manual/en/function.sem-acquire.php" rel = "nofollow noreferrer"> sem_acquire et sem_release . Mais en général, cela ne vaut pas PHP.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top