首頁 >後端開發 >php教程 >php使用flock阻塞和非阻塞寫入檔案方法對比

php使用flock阻塞和非阻塞寫入檔案方法對比

小云云
小云云原創
2018-02-08 09:41:511631瀏覽

本文主要和大家分享php使用flock阻塞和非阻塞寫入檔案方法比較。小編覺得蠻不錯的,現在就分享給大家,也給大家做個參考。一起跟著小編過來看看吧,希望能幫助大家。

阻塞寫入程式碼:(所有程式會等待上次程式執行結束才會執行,30秒會逾時)

<?php 
$file = fopen("test.txt","w+"); 
 
$t1 = microtime(TRUE); 
if (flock($file,LOCK_EX)) 
{ 
 sleep(10); 
 fwrite($file,"Write something"); 
 flock($file,LOCK_UN); 
 echo "Ok locking file!"; 
} 
else 
{ 
 echo "Error locking file!"; 
} 
 
fclose($file); 
 
$t2 = microtime(TRUE); 
echo sprintf("%.6f",($t2-$t1));

非阻塞寫入程式碼:(只要檔案被佔用,則顯示Error locking file!)

<?php 
$file = fopen("test.txt","a+"); 
 
$t1 = microtime(TRUE); 
if (flock($file,LOCK_EX|LOCK_NB)) 
{ 
 sleep(10); 
 fwrite($file,"Write something"); 
 flock($file,LOCK_UN); 
 echo "Ok locking file!"; 
} 
else 
{ 
 echo "Error locking file!"; 
} 
 
fclose($file); 
 
$t2 = microtime(TRUE); 
echo sprintf("%.6f",($t2-$t1));

相關推薦:

php中關於協程與阻塞的深入理解

#經典型與非阻塞型