Maison >développement back-end >tutoriel php >Comment PHP résout-il le problème de plusieurs processus lisant et écrivant un fichier en même temps ?

Comment PHP résout-il le problème de plusieurs processus lisant et écrivant un fichier en même temps ?

巴扎黑
巴扎黑original
2017-09-09 14:34:192830parcourir

Comment PHP résout-il le problème de plusieurs processus lisant et écrivant un fichier en même temps ?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn