Mécanisme de verrouillage des fichiers

Mécanisme de verrouillage de fichiers

Le mécanisme de verrouillage de fichiers n'a généralement aucun effet lorsqu'un seul fichier est ouvert. Cette partie de l'apprentissage est un peu abstraite.

Vous ne réfléchissez pas à la manière d'y parvenir ?

Pourquoi ne voyez-vous pas l’effet ?
Réponse : Parce que l'ordinateur fonctionne si vite, essentiellement au niveau de la milliseconde. Cette expérience n’a donc aucun effet.

Dans ce chapitre, comprenez simplement les concepts de base du verrouillage de fichiers et familiarisez-vous avec la fonction de verrouillage de fichiers et le mécanisme de verrouillage.

Utilisation du verrouillage de fichier :

Si une personne écrit dans un fichier, une autre personne écrit également dans le fichier en même temps Importer le fichier.
Dans ce cas, si une certaine probabilité de collision est rencontrée, je ne sais pas quelle opération prévaudra.
Par conséquent, nous introduisons actuellement le mécanisme de verrouillage.
Si l'utilisateur A écrit ou lit ce fichier, ajoutez le fichier au partage. Je peux le lire, et les autres aussi.
Cependant, si tel est le cas. J'utilise le verrouillage exclusif. Ce fichier m'appartient. N'y touchez pas à moins que je libère le verrou du fichier.

Remarque : qu'un verrou de fichier soit ajouté ou non, veillez à le libérer.

Jetons un coup d'œil à cette fonction :

bool flock ( resource $handle , int $operation)

Fonction : verrouillage léger des fichiers consultatifs

Nous Jetons un coup d'œil au type de verrouillage :


QQ截图20161009111405.png


Ensuite, nous ajoutons une exclusivité à la démo. verrouillage txt pour les opérations d'écriture.

<?php
 
$fp = fopen("demo.txt", "r+");
 
 // 进行排它型锁定
if (flock($fp, LOCK_EX)) {
 
    fwrite($fp, "文件这个时候被我独占了哟\n");
 
   // 释放锁定
    flock($fp, LOCK_UN);   
} else {
    echo "锁失败,可能有人在操作,这个时候不能将文件上锁";
}
 
fclose($fp);
 
?>

Explication :

1 Dans l'exemple ci-dessus, afin d'écrire le fichier, j'ai ajouté un verrou exclusif au fichier.

2. Si je termine l'opération et que l'écriture est terminée, le verrou exclusif sera libéré.

3. Si vous lisez un fichier, vous pouvez ajouter un verrou partagé selon la même idée de traitement.


Formation continue
||
<?php $fp = fopen("demo.txt", "r+"); // 进行排它型锁定 if (flock($fp, LOCK_EX)) { fwrite($fp, "文件这个时候被我独占了哟\n"); // 释放锁定 flock($fp, LOCK_UN); } else { echo "锁失败,可能有人在操作,这个时候不能将文件上锁"; } fclose($fp); ?>
soumettreRéinitialiser le code
  • Recommandations de cours
  • Téléchargement du didacticiel