라이브러리
[PHP] SyncReaderWriter::writelock - 배타적 쓰기 잠금을 기다립니다.
SyncReaderWriter::writeLock
`SyncReaderWriter`는 PHP 8.1에서 추가된 클래스로, 읽기-쓰기 동시성 제어를 위한 클래스입니다. 이 클래스는 읽기와 쓰기의 동시성을 제어하기 위한 `writeLock()` 메소드를 제공합니다.
# writeLock() 메소드
`writeLock()` 메소드는 쓰기 잠금을 획득하는 메소드입니다. 이 메소드는 쓰기 잠금이 이미 획득된 경우 `LockException` 예외를 발생시키며, 읽기 잠금이 획득된 경우 읽기 잠금을 자동으로 해제하고 쓰기 잠금을 획득합니다.
# 예제
#hostingforum.kr
php
use SwooleCoroutineSyncReaderWriter;
$syncReaderWriter = new SyncReaderWriter();
// 쓰기 잠금을 획득합니다.
$syncReaderWriter->writeLock();
try {
// 쓰기 잠금이 획득된 경우에만 실행됩니다.
echo "쓰기 잠금이 획득되었습니다.
";
} finally {
// 쓰기 잠금을 해제합니다.
$syncReaderWriter->unlock();
}
// 읽기 잠금을 획득합니다.
$syncReaderWriter->readLock();
try {
// 읽기 잠금이 획득된 경우에만 실행됩니다.
echo "읽기 잠금이 획득되었습니다.
";
} finally {
// 읽기 잠금을 해제합니다.
$syncReaderWriter->unlock();
}
# 동시성 제어 예제
#hostingforum.kr
php
use SwooleCoroutineSyncReaderWriter;
$syncReaderWriter = new SyncReaderWriter();
// 쓰기 잠금을 획득합니다.
$syncReaderWriter->writeLock();
try {
// 쓰기 잠금이 획득된 경우에만 실행됩니다.
echo "쓰기 잠금이 획득되었습니다.
";
// 쓰기 잠금이 유지된 상태에서 읽기 잠금을 획득합니다.
$syncReaderWriter->readLock();
try {
// 읽기 잠금이 획득된 경우에만 실행됩니다.
echo "읽기 잠금이 획득되었습니다.
";
} finally {
// 읽기 잠금을 해제합니다.
$syncReaderWriter->unlock();
}
} finally {
// 쓰기 잠금을 해제합니다.
$syncReaderWriter->unlock();
}
위 예제에서는 쓰기 잠금이 획득된 후 읽기 잠금을 획득하는 경우를 보여줍니다. 읽기 잠금이 획득된 후 쓰기 잠금을 획득하는 경우는 동시성 제어가 발생하지 않습니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.