이 문서의 예에서는 PHP가 파일 잠금을 기반으로 동시에 여러 프로세스가 파일을 읽고 쓰는 문제를 해결하는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.
우선, PHP는 프로세스를 지원하지만 멀티스레딩은 지원하지 않습니다(이 점을 먼저 명확히 하세요). 파일 작업인 경우 실제로는 잠그기만 하면 됩니다. 문제를 해결하려면 다른 작업이 필요하지 않습니다. PHP 무리가 이미 해당 작업을 수행했습니다.
무리를 사용하여 쓰기 전에 파일을 잠그고 쓰기 후에 잠금을 해제하세요. 이렇게 하면 여러 스레드가 동시에 파일을 읽고 쓸 수 있어 충돌을 피할 수 있습니다. 아마 다음과 같은 과정이겠죠
/* *flock(file,lock,block) *file 必需,规定要锁定或释放的已打开的文件 *lock 必需。规定要使用哪种锁定类型。 *block 可选。若设置为 1 或 true,则当进行锁定时阻挡其他进程。 *lock *LOCK_SH 要取得共享锁定(读取的程序) *LOCK_EX 要取得独占锁定(写入的程序) *LOCK_UN 要释放锁定(无论共享或独占) *LOCK_NB 如果不希望 flock() 在锁定时堵塞 /* if (flock($file,LOCK_EX)) { fwrite($file,'write more words'); flock($file,LOCK_UN); } else { //处理错误逻辑 } fclose($file); )
위 내용은 PHP의 파일 잠금은 여러 프로세스가 동시에 파일을 읽고 쓰는 문제를 해결합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!