이 기사에서는 주로 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));
관련 권장 사항: