Comment PHP résout-il le problème de plusieurs processus lisant et écrivant un fichier en même temps ?
Tout d'abord, PHP prend en charge les processus mais ne prend pas en charge le multi-threading (clarifiez-le d'abord). S'il s'agit d'une opération sur un fichier, il vous suffit de verrouiller le fichier et 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. Il s'agit probablement du 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); )
Pour plus de connaissances connexes, veuillez visiter le Site Web PHP chinois ! !
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!