84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
问题:(1)不需要cas操作来加锁和解锁,这个怎么理解??cas操作不是如果比较不成功那么就一直尝试吗?和加锁有什么关系??这个该如何理解
走同样的路,发现不同的人生
비교 및 교환 작업에는 플랫폼에 따라 잠금이 필요하지 않을 수 있지만 대부분의 플랫폼은 잠금 없는 CAS를 지원합니다. 가장 간단한 잠금은 테스트와 설정을 통해 구현되는 스핀 잠금입니다. 물론 CAS를 통해서도 구현할 수 있습니다.
잠금이 실패하면 스핀 잠금이 계속 시도되어 CPU 리소스가 소진됩니다.
시스템 인터페이스에서 제공하는 잠금은 일반적으로
여기 wait_for_unlock_signal()는 가상의 함수입니다. 그러나 잠금은 여전히 cas와 같은 원자적 작업에 의존합니다. 즉, 이제 잠금은 테스트, 설정, 비교, 교환과 같은 몇 가지 기본적인 원자적 작업을 통해 구현됩니다.
wait_for_unlock_signal()
비교 및 교환 작업에는 플랫폼에 따라 잠금이 필요하지 않을 수 있지만 대부분의 플랫폼은 잠금 없는 CAS를 지원합니다. 가장 간단한 잠금은 테스트와 설정을 통해 구현되는 스핀 잠금입니다. 물론 CAS를 통해서도 구현할 수 있습니다.
잠금이 실패하면 스핀 잠금이 계속 시도되어 CPU 리소스가 소진됩니다.
등 으아아아시스템 인터페이스에서 제공하는 잠금은 일반적으로
과 유사하게 잠금에 실패할 경우 스레드를 일시 중지합니다. 으아아아여기
wait_for_unlock_signal()
는 가상의 함수입니다. 그러나 잠금은 여전히 cas와 같은 원자적 작업에 의존합니다. 즉, 이제 잠금은 테스트, 설정, 비교, 교환과 같은 몇 가지 기본적인 원자적 작업을 통해 구현됩니다.