답변
소규모 파일 작업이 매우 빠르기 때문에 동시에 두 번 쓰기가 매우 드뭅니다. 에 관계없이, 파일 잠금 flock
를 사용할 수 있습니다 fclose
가 자동으로 파일의 잠금을 해제
$fp = fopen('file.log', 'a+');
flock($fp, LOCK_EX);
fwrite($fp, 'my data');
flock($fp, LOCK_UN);
fclose($fp);
참고하지만, 나는 그것이 코드를 좀 더 사용자 친화적으로 이러한 것들을 넣어하게 찾을 수
+1, 간결한 ... 내 와플 좋아하지 않아! –
만약 인터프리터가 파일을 잠그지 만 잠금을 해제하기 전에 서버가 죽으면 잠금이 해제되지 않습니다. :) – ajsie
@noname - Yup. 잠금 시스템은 종종 이러한 것들을 중재하고, 합의를 이끌어 내고, 대처해야합니다. –
예 [flock] 파일을 잠그지 않으면 두 파일을 동시에 열 수 있습니다. 그러나 파일을 모으는 가장 좋은시기는 파일을 쓰거나 파일 한 개만 볼 수있게하려는 경우입니다.
중요한이다 : 그들은
- 무엇 (a)는 읽는 경우 (b)는 (나)는 (가) 글 다음 글을 다음 읽고, 어떻게됩니까됩니까? (a)의 계산은 더 이상 최신 상태에서 파생되지 않아 쓰기가 유효하지 않습니까?
고전적인 예는 많은 텍스트에 사용 된 Cash machine/bank balance 예입니다.
은 어떤 종류의 기록 가능한 상태 같은 mutex 같은 동시 액세스 제어 어떤 형태의 요구를 공유하지만, 잠재적 문제의 톤이있다 같은 race conditions 기아 및 dining philosophers problem에 변화.그러나 많은 운영 체제는 어떤 설명의 File locking을 허용합니다. 즉, 다른 프로세스는 잠금이 해제 될 때까지 기다립니다. 또한 ", 체크 아웃, 변경/병합 커밋의"를 사용하는 방법을 수 PHP's flock() for locking a file.
참조하십시오.
는 이유에 따라 다음과 같은 같은 MySQL 또는 SQLite 읽기 무거운 또는 캐시가없는 상태를 공유 할 수 보다 빠르고 강력한 방법을 제공하는 데이터베이스를 고려할 수 있습니다.
수많은 문제, 함정 및 상태 공유 방법이 광범위합니다. 모든 Wikipedia 사용에 사과드립니다.
항상 발생합니다. 그러나 귀하의 질문에 대한 답변은 정확히 두 사람이 원했던/열어 놓은 파일로 무엇을하고 싶은지에 달려 있습니다. 가능한 조치/솔루션은이 요구 사항에 전적으로 의존합니다.
. FILE_APPEND
또는 LOCK_EX
플래그 대신 file_put_contents()
을 사용하십시오.
이러한 플래그는 파일을 쓰기 위해 잠급니다.
- 1. 동시 db4o 파일 액세스
- 2. 블록 동시 액세스 ThreadPool이
- 3. SQL 서버 동시 액세스
- 4. PHP 동시 파일 쓰기
- 5. spring context.refresh() 및 동시 액세스
- 6. Windows에서 Java로 동시 파일 쓰기
- 7. PHP 실행 파일 동시 실행
- 8. 동시 요청 중 세션 값에 액세스
- 9. 동시 Subversion 저장소 액세스 모듈에 대한 경험
- 10. Entity Framework == EntityException을 사용하여 데이터베이스에 동시 액세스
- 11. WCF 클라이언트 프록시에 대한 동시 액세스
- 12. 자바 서블릿의 서비스 메소드에 동시 액세스
- 13. Apache Derby 데이터베이스에 대한 동시 액세스 관리
- 14. Android : 마이크에 동시 액세스 (RecognizerIntent + own app)
- 15. HSQLDB 임베디드 인스턴스에 대한 동시 액세스
- 16. Android - 캔버스에 안전하게 동시 액세스 하시겠습니까?
- 17. 파일 액세스 /.
- 18. 파일 액세스
- 19. 브라우저에서 최대 동시 파일 다운로드 수는 얼마입니까?
- 20. 파일 동시 다운로드 - 가장 좋은 방법은
- 21. 파일 시스템은 동시 읽기/쓰기를 어떻게 처리합니까?
- 22. Tomcat 최대 동시 파일 업로드 수
- 23. rsync는 동시 파일 액세스를 위해 어떻게 작동합니까?
- 24. StreamReader 동시 파일 액세스의 경우 예외 발생
- 25. 동시 메모리 주소에 동시 쓰기
- 26. 동시 데이터 구조 테스트
- 27. 파일 시스템 액세스 디버깅
- 28. 델파이에서 직접 파일 액세스
- 29. Django 파일 액세스 보안
- 30. 트랙 파일 액세스
정확한 답변이 확실하지 않습니다. 그러나 그렇습니다, 누군가는 이것을 시도했습니다. –
운영 체제에 따라 다름. –
이것은 웹 개발 초기에 MySQL 3.x가 인기를 얻은 이유입니다. –