Sync
Sync
PHP에 크로스 플랫폼 동기화 객체를 도입해 주는 확장이에요. 이름이 있는/없는 뮤텍스, 세마포어, 이벤트, 리더-라이터 객체와 이름 있는 공유 메모리를 POSIX(예: Linux)와 Windows 양쪽에서 OS 레벨 동기화로 제공합니다.
출처: Sync
본문
Sync 확장은 PHP에 크로스 플랫폼 동기화 객체를 도입합니다. 이름 있는(named) 객체와 이름 없는(unnamed) 뮤텍스, 세마포어, 이벤트, 리더-라이터(Reader-Writer), 그리고 이름 있는 공유 메모리 객체를 POSIX(예: Linux)와 Windows 플랫폼 모두에서 OS 레벨 동기화로 제공해요.
획득한 동기화 객체의 자동 정리는 확장이 종료될 때(teardown) 이루어집니다. 즉, PHP가 스크립트를 조기 종료하더라도(예: 스크립트 실행 시간 초과) 객체가 알 수 없는 상태로 남지 않아요. 유일한 예외는 PHP 자체가 크래시하는 경우(예: 내부 버퍼 오버플로)입니다.
이름 없는 동기화 객체는 멀티스레드 시나리오 밖에서는 쓸 일이 많지 않습니다. 이름 없는 객체는 pthreads PECL 확장과 함께 쓸 때 더 유용해요.
한 가지 주의할 점이 있는데, 이름 있는 객체는 모든 시스템에서 사용할 때 추가적인 주의가 필요합니다. 특정 매개변수 집합으로 객체를 인스턴스화했다면, 항상 그 매개변수로 인스턴스화해야 해요. 그렇지 않으면 다음 재부팅이나 시스템 관리자가 정리할 때까지 객체가 불일치 상태가 될 가능성이 큽니다.