PHP 파일 잠금 메커니즘
파일 잠금 메커니즘은 일반적으로 단일 파일을 열 때 전혀 효과가 없습니다. 학습의 이 부분은 약간 추상적입니다.
어떻게 달성할지 고민이 되시나요?
왜 효과를 볼 수 없나요?
답변: 컴퓨터는 기본적으로 밀리초 수준으로 매우 빠르게 작동하기 때문입니다. 따라서 이 실험은 실제로 아무런 효과가 없습니다.
이 장에서는 파일 잠금의 기본 개념을 이해하고 파일 잠금 기능과 잠금 메커니즘에 익숙해집니다.
파일 잠금 사용:
한 사람이 파일을 쓰고 있으면 다른 사람도 파일을 열어서 파일을 씁니다.
이 경우 어느 정도 충돌 가능성이 있다면 누구의 작전이 승리할지 모르겠습니다.
그래서 이번에는 잠금 장치를 소개합니다.
사용자 A가 이 파일을 쓰거나 읽는 경우 파일을 공유에 추가합니다. 나는 그것을 읽을 수 있고 다른 사람들도 읽을 수 있습니다.
그러나 만약 그렇다면. 전용 자물쇠를 사용하고 있습니다. 이 파일은 제가 파일 잠금을 해제하지 않는 한 제 것입니다.
참고: 파일 잠금 추가 여부에 관계없이 잠금을 해제할 때 주의하세요.
이 기능을 살펴보겠습니다:
bool Flock(resource $handle, int $Operation)
기능: 경량 권고 파일 잠금
잠금 종류를 살펴보겠습니다:
锁类型 | 说明 |
---|---|
LOCK_SH | 取得共享锁定(读取的程序) |
LOCK_EX | 取得独占锁定(写入的程序 |
LOCK_UN | 释放锁定(无论共享或独占) |
demo.txt에 전용 잠금을 추가하고 쓰기 작업을 수행하겠습니다.
<?php $fp = fopen("demo.txt", "r+"); // 进行排它型锁定 if (flock($fp, LOCK_EX)) { fwrite($fp, "文件这个时候被我独占了哟\n"); // 释放锁定 flock($fp, LOCK_UN); } else { echo "锁失败,可能有人在操作,这个时候不能将文件上锁"; } fclose($fp); ?>
설명:
1. 위의 예에서는 파일을 쓰기 위해 파일에 배타적 잠금을 추가했습니다.
2. 나의 작업이 완료되면 글쓰기가 완료된 후 전용 잠금이 해제됩니다.
3. 파일을 읽는 중이라면 동일한 처리 아이디어에 따라 공유 잠금을 추가할 수 있습니다.