Explication sur la façon dont PHP utilise flock pour bloquer et non bloquer l'écriture de fichiers :
Bloquer l'écriture de code : (tous les programmes attendront une dernière fois Le le programme ne sera pas exécuté tant qu'il n'est pas terminé et expirera 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));
Non bloquant écriture du code : (Tant que le fichier est occupé, 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));
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!