이 스레드 문제에 대한 멍청한 데요 : \C 멀티 스레드 : 모든 스레드가 동시에 액세스 할 수있는 경우 읽기 잠금 (pthread_rwlock_rdlock)의 장점은 무엇입니까?
쓰기 잠금이 글로벌 변수 확인을 기다리는 while
처럼 동작한다고 상상해보십시오. 좋아요 :
/* pthread_rwlock_wrlock */
while (is_blocked) {
/* waiting */
}
is_blocked = true;
(writing code...)
/* pthread_rwlock_unlock */
is_blocked = false;
맞나요? 그리고 어떻게 읽기 잠금이 작동합니까? 공유되는 경우 왜 사용합니까?
정보 :
pthread_rwlock_rdlock() - 공유 읽기 잠금
pthread_rwlock_wrlock를 얻을 수() - 당신이 그것을 원하지 않는 보호 된 리소스를 읽을 때 독점 쓰기 잠금
개념적으로는 비슷할 수 있습니다. 그러나 실제로는 유용한 대기를 수행 할 수있는 CPU주기의 막대한 낭비이기 때문에 바쁜 대기 루프가되지 않습니다. 대기중인 스레드는 잠금이 풀릴 때까지 실행되도록 예약되지 않으며 그 중 하나는 일부 전략에 의해 선택됩니다. – StoryTeller