>  기사  >  백엔드 개발  >  Flock을 사용하여 파일을 작성하는 PHP의 차단 및 비차단 방법 비교

Flock을 사용하여 파일을 작성하는 PHP의 차단 및 비차단 방법 비교

小云云
小云云원래의
2018-02-08 09:41:511566검색

이 기사에서는 주로 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));

비차단 쓰기 코드: (파일이 점유되어 있는 한 오류 잠금 파일이 표시됩니다!)

<?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의 코루틴 및 차단에 대한 심층적인 이해

클래식 및 비차단