L'exemple de cet article décrit comment PHP résout le problème de plusieurs processus lisant et écrivant un fichier en même temps en fonction des verrous de fichiers. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
Tout d'abord, PHP prend en charge les processus mais pas le multi-threading (clarifiez-le d'abord s'il s'agit d'une opération sur un fichier, en fait). , il vous suffit de donner le fichier. Cela peut être résolu en ajoutant un verrou. Aucune autre opération n'est requise. PHP flock l'a déjà fait pour vous.
Utilisez flock pour verrouiller le fichier avant l'écriture et le déverrouiller après l'écriture. Cela permet à plusieurs threads de lire et d'écrire un fichier en même temps pour éviter les conflits. C'est probablement le processus suivant
/* *flock(file,lock,block) *file 必需,规定要锁定或释放的已打开的文件 *lock 必需。规定要使用哪种锁定类型。 *block 可选。若设置为 1 或 true,则当进行锁定时阻挡其他进程。 *lock *LOCK_SH 要取得共享锁定(读取的程序) *LOCK_EX 要取得独占锁定(写入的程序) *LOCK_UN 要释放锁定(无论共享或独占) *LOCK_NB 如果不希望 flock() 在锁定时堵塞 /* if (flock($file,LOCK_EX)) { fwrite($file,'write more words'); flock($file,LOCK_UN); } else { //处理错误逻辑 } fclose($file); )
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!