파일 잠금
이 유형의 잠금은 mysql, php-fpm과 같이 더 일반적입니다. 시작 후 나타납니다. pid 파일에는 프로세스 ID가 기록되며 이 파일이 파일 잠금입니다.
이 잠금을 사용하면 프로세스가 반복적으로 실행되는 것을 방지할 수 있습니다. 예를 들어 crontab을 사용할 경우 1분마다 하나의 작업이 실행되도록 제한되지만, 프로세스가 잠기면 이 프로세스가 1분 이상 실행될 수 있습니다. 충돌을 해결하는 데 사용되지 않으면 두 프로세스가 함께 실행되면 문제가 발생합니다.
PID 파일 잠금 사용의 또 다른 장점은 프로세스가 중지 또는 다시 시작 신호를 자체적으로 보내는 것이 편리하다는 것입니다. 예를 들어, php-fpm을 다시 시작하는 명령은 다음과 같습니다:
kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`
USR2 신호를 pid 파일에 기록된 프로세스로 보냅니다. 신호는 프로세스 통신에 속하며 다른 장에서 설명합니다.
Mutex 잠금 및 읽기-쓰기 잠금
동기화 모듈의 Mutex:
# 🎜 🎜#Mutex는 상호 배제, 상호 배제의 합성어입니다. pecl을 사용하여 동기화 모듈을 설치하고 pecl install sync를 설치합니다. 문서의 SyncMutex에는 잠금 및 잠금 해제라는 두 가지 방법만 있습니다.동기화 모듈의 읽기-쓰기 잠금:
SyncReaderWriter의 방법은 유사하며, readlock, readunlock, writelock, writeunlock은 쌍으로 나타날 수 있습니다.동기화 모듈의 이벤트:
Golang의 Cond와 더 비슷한 느낌, wait() 블록, fire() 깨우기 이벤트 차단 프로세스의. Cond를 소개하는 좋은 기사가 있습니다. Cond는 고정된 잠금 사용법임을 알 수 있으며 SyncEvent도 마찬가지입니다. PHP 문서의 예에서는 fire() 메소드가 웹 애플리케이션에서 사용되는 것으로 보입니다.동기화 모듈의 세마포:
SyncSemaphore 문서에 따르면 Mutex와 차이점은 Semaphore를 여러 사람이 사용할 수 있다는 것입니다. 시간 프로세스(또는 스레드) 및 Mutex는 한 번에 하나씩만 얻을 수 있습니다. 따라서 SyncSemaphore의 생성자에는 세마포어를 얻을 수 있는 프로세스 수를 지정하는 매개 변수가 있습니다. 추천 튜토리얼:위 내용은 PHP에는 잠금 장치가 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!