Pour la simultanéité et la garantie de l'intégrité des données, comment obtiendriez-vous un verrou d'exclusion mutuelle pour un objet donné? Auriez-vous besoin d'utiliser le verrouillage dans la base de données, ou un fichier, ou est-ce que PHP supporte quelque chose comme ça?Quel est l'équivalent de l'instruction de verrouillage C# en PHP?
Répondre
PHP ne supporte pas multithreading donc il n'y a pas de mécanisme de verrouillage pour les objets. Si vous voulez verrouiller un fichier, vous pouvez utiliser flock pour cela. Il n'est pas nécessaire de verrouiller la base de données car les moteurs de base de données peuvent généralement gérer plusieurs connexions.
Nare à l'esprit PHP n'est pas multithread, il est donc peu probable que vous ayez besoin de quelque chose comme ça ... cependant, cela peut être nécessaire si vous utilisez de la mémoire partagée ou toute autre ressource externe. Dans ce cas, utilisez smaphores:
http://www.php.net/manual/en/function.sem-acquire.php
flock pour les fichiers.
Si vous souhaitez utiliser le verrouillage dans la base de données, vous devez utiliser les fonctions de verrouillage pour ces bases de données. Presque toutes les bases de données utilisent une forme de mécanisme de verrouillage.
rien pour les objets
Il a les sémaphores
Il a troupeau http://www.php.net/manual/en/function.flock.php
Vous pouvez faire le verrouillage de table MySQL.
Comme d'autres ont répondu, puisque PHP n'est pas multithread, vous n'avez pas besoin de verrouiller les objets. Cependant, si vous avez besoin de verrouiller la base de données, vous pouvez vous tourner vers transactions. Il existe de nombreux tutoriels pour faire des transactions avec PHP et MySQL (et probablement aussi pour d'autres RMDBS).
- 1. question de verrouillage de base en C#
- 2. C# - dessin de verrouillage
- 3. Verrouillage inter-processus en C#
- 4. Déclaration de verrouillage C#
- 5. Quel est l'équivalent en php?
- 6. Quel est l'équivalent de bigint en C#?
- 7. Quel est l'équivalent de Thread.SetApartmentState en C++?
- 8. Quel est l'équivalent de TreeBidiMap en C#?
- 9. Dossier de verrouillage C# FileSystemWatcher
- 10. C# 's verrouillage() en C++ géré
- 11. C# Verrouillage de propriété statique
- 12. Quel est l'équivalent de RequestDispatcher # forward() de Java en PHP?
- 13. Quel est l'équivalent de l'encodeURIcomponent de JavaScript en PHP?
- 14. Quel est l'équivalent C# de preg_match_all?
- 15. Quel est l'équivalent de l'objet en C# pour l'objectif C?
- 16. Verrouillage de champ statique C#
- 17. Quel est l'analogue C++ de l'octet C# []?
- 18. Quel est T_VARIABLE inattendu en PHP?
- 19. Quel est l'équivalent de l'objet canvas de Java en C#?
- 20. Quel est l'équivalent de l'énumération de Java en C#?
- 21. Quel est l'équivalent de l'instruction "Dim" de VB en C#?
- 22. Quel est l'équivalent de AbstractMap de Java en C#?
- 23. quel est le type de retour de nouveau en C++?
- 24. C# Pourquoi ma déclaration de verrouillage est-elle suspendue?
- 25. poste de travail de Windows verrouillage par programmation en C#
- 26. C# verrouillage d'un objet qui est réaffecté dans le bloc de verrouillage
- 27. Quel est l'équivalent de cette expression rationnelle Javascript en PHP?
- 28. Quel est l'équivalent de Set X = Nothing en PHP?
- 29. Quel est le principe de l'auto-chargement en PHP?
- 30. Quel est le besoin de validation des formulaires en php?
Je ne parle pas seulement de "connexions multiples", mais de circonstances dans lesquelles vous devez vous assurer que personne d'autre ne modifie une donnée donnée en même temps. Par exemple, si vous avez une application ATM. Si deux personnes retirent 50 $ en même temps, mais qu'il n'y a que 50 $ dans le compte, l'une des personnes devrait avoir une erreur. –
OK, je vois, puisque ce n'est pas multi-threadé, je suppose que cela ne devrait pas poser de problème ... –