Cet article partage principalement avec vous la comparaison des méthodes bloquantes et non bloquantes d'écriture de fichiers à l'aide de flock en PHP. L'éditeur pense que c'est plutôt bien, alors je vais le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur pour y jeter un œil, j'espère que cela pourra aider tout le monde.
Code d'écriture bloquant : (Tous les programmes attendront la fin de la dernière exécution du programme avant de s'exécuter et expireront dans 30 secondes)
<?php $file = fopen("test.txt","w+"); $t1 = microtime(TRUE); if (flock($file,LOCK_EX)) { sleep(10); fwrite($file,"Write something"); flock($file,LOCK_UN); echo "Ok locking file!"; } else { echo "Error locking file!"; } fclose($file); $t2 = microtime(TRUE); echo sprintf("%.6f",($t2-$t1));
Code d'écriture non bloquant : (Tant que si le fichier est occupé, une erreur de verrouillage du fichier s'affiche !)
<?php $file = fopen("test.txt","a+"); $t1 = microtime(TRUE); if (flock($file,LOCK_EX|LOCK_NB)) { sleep(10); fwrite($file,"Write something"); flock($file,LOCK_UN); echo "Ok locking file!"; } else { echo "Error locking file!"; } fclose($file); $t2 = microtime(TRUE); echo sprintf("%.6f",($t2-$t1));
Recommandations associées :
Compréhension approfondie des coroutines et du blocage en php
Explication détaillée des exemples d'utilisation des balises