2010-02-08 3 views

Répondre

4

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.

+1

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. –

+0

OK, je vois, puisque ce n'est pas multi-threadé, je suppose que cela ne devrait pas poser de problème ... –

0

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

0

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).

Questions connexes