Bonjour à tous.
J'aurais aimé une petite aide.
Que se passe t-il, lorsque deux utilisateurs, au même moment, font appel à une fonction dont le temps d'exécution est assez long (un bon paquet de requêtes SQL) et qui viennent affecter les mêmes enregistrements ?
En gros, pour détailler mon problème :
Utilisateur A
Utilisateur B
Fonction f
Table T
un champ "Lock" dans ma table T
A lance f
Dans f, on teste si Lock vaut 0
Si 0, on fais un UPDATE pour mettre lock à 1, sinon on quitte la fonction
on fait tout plein de traitements.
on remet lock à 0
fin de f
Ensuite (ou simultanément)
B lance f
A priori si A est encore dans la fonction f, on ne peut pas y rester car lock vaut 1. Sans en être certain, j'ai des cas où il semble que les 2 utilisateurs parviennent à y rentrer en même temps...
Je fais un peu de java et je sais qu'on doit souvent utiliser synchronised pour un accès exclusif à certaines ressources, un équivalent éxiste t-il en php ?
Cordialement.
Partager