Heim  >  Artikel  >  Backend-Entwicklung  >  Muss die PHP-Programmierung Sperren verwenden?

Muss die PHP-Programmierung Sperren verwenden?

angryTom
angryTomOriginal
2019-10-31 15:42:052658Durchsuche

Muss die PHP-Programmierung Sperren verwenden?

Erfordert die PHP-Programmierung Sperren

Ja.

Denn um die Wirksamkeit und Integrität des Vorgangs sicherzustellen, ist es notwendig, den gleichzeitigen Zustand über den Sperrmechanismus in einen seriellen Zustand umzuwandeln, um das durch hohe Parallelität verursachte Problem der Ressourcenkonkurrenz zu lösen. Als einer der Sperrmechanismen ist die Dateisperre von PHP auch darauf ausgelegt, dem Ressourcenwettbewerb standzuhalten.

Angenommen, bei großer Parallelität schreibt fwrite die Daten mehrmals in geordneter Weise an das Ende der Datei. Mehrere geordnete Schreibvorgänge entsprechen einer Transaktion, und wir müssen zu diesem Zeitpunkt die Integrität dieser Transaktion sicherstellen.

Wenn zwei Programme gleichzeitig Daten in eine Datei schreiben, können wir eine Dateisperre hinzufügen und Programm 1 zuerst ausführen lassen, um die Integrität der Daten sicherzustellen. Entsperren Sie es und lassen Sie dann Programm 2 ausführen. Der Implementierungscode lautet wie folgt:

$fp = fopen('test.txt',"a");
$count = 10;
if (flock($fp, LOCK_EX)) {
for($i=1;$i<$count;$i++){
fwrite($fp, &#39;text2_&#39;.$i."rn");
echo "test2".date(&#39;h:i:s&#39;) . "
";
sleep(1); 
echo "test2".date(&#39;h:i:s&#39;);
}
flock($fp , LOCK_UN);
}else{
echo "Couldn&#39;t lock the file !";
}
fclose($fp);

Weitere PHP-bezogene Kenntnisse finden Sie auf der PHP-Chinese-Website!

Das obige ist der detaillierte Inhalt vonMuss die PHP-Programmierung Sperren verwenden?. 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