Heim  >  Artikel  >  Datenbank  >  Die Dateisperre in PHP löst das Problem, dass mehrere Prozesse gleichzeitig eine Datei lesen und schreiben

Die Dateisperre in PHP löst das Problem, dass mehrere Prozesse gleichzeitig eine Datei lesen und schreiben

黄舟
黄舟Original
2017-09-08 14:43:041295Durchsuche

Das Beispiel in diesem Artikel beschreibt, wie PHP das Problem löst, dass mehrere Prozesse gleichzeitig eine Datei lesen und schreiben, basierend auf Dateisperren. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Zuallererst unterstützt PHP Prozesse, aber kein Multithreading (klären Sie dies zuerst, wenn es sich tatsächlich um Dateioperationen handelt). , Sie müssen es nur durch Hinzufügen einer Sperre lösen. Es sind keine weiteren Vorgänge erforderlich. PHP flock hat es bereits für Sie erledigt.

Verwenden Sie flock, um die Datei vor dem Schreiben zu sperren und nach dem Schreiben zu entsperren. Dadurch können mehrere Threads gleichzeitig eine Datei lesen und schreiben, um Konflikte zu vermeiden. Es handelt sich wahrscheinlich um den folgenden Prozess


/*
*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);
)

Das obige ist der detaillierte Inhalt vonDie Dateisperre in PHP löst das Problem, dass mehrere Prozesse gleichzeitig eine Datei lesen und schreiben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn