주로 아이디어를 제공합니다.
$lock0 및 $lock1은 파일 잠금 식별자입니다. 사용자가 파일을 열면 $lock0 및 $lock1이 생성됩니다.
사실 가장 중요한 것은 파일의 현재 상태를 나타내는 식별자가 있다는 것입니다.
코드 복사 코드는 다음과 같습니다.
// 파일 잠금, 시간 초과 너무 오래 걸리는 경우.
기능 잠금($lock, $tries) {
$lock0 = ".{$lock}0"
$lock1 = ".{$lock}1"; 🎜> for ($i=0; $i<$tries; $i ) {
if (!is_file($lock0)) {
touch($lock0)
If (!is_file($ lock1)) {
touch($lock1);
return 1;
} / 파일 잠금을 해제합니다.
기능 잠금 해제($lock) {
unlink(".{$lock}1 ");
unlink(".{$lock}0");
}
// 사용 예.
$filename = "somefile";
$data = "stuff and thingsn ";
$tries = 10;
if (lock($filename, $tries) ) {
$h = fopen($filename, "a") 또는 die();
fwrite( $h, $data);
fclose($h)
/**
* 다른 프로세스가 파일을 쓰고 잠겨 있는지 확인합니다
*/
if (lock($filename, $tries)) {
$h2 = fopen( $filename, "a") 또는 die();
fwrite($h2,'check lock ')
fclose($h2)
}else{
//die("실패했습니다. ".($tries*100)." 밀리초 후에 $filename을 잠그려면!"; }
Unlock($filename);
} else {
//die("다음에 $filename을 잠그지 못했습니다. " .($tries*100)." 밀리초!"
}
?>
위에서는 무리 측면을 포함하여 파일 잠금을 달성하기 위해 무리를 시뮬레이션하는 무리를 소개했습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.