java - Cas操作会加锁吗
怪我咯
怪我咯 2017-04-18 10:52:40
0
1
694

问题:
(1)不需要cas操作来加锁和解锁,这个怎么理解??cas操作不是如果比较不成功那么就一直尝试吗?和加锁有什么关系??这个该如何理解

怪我咯
怪我咯

走同样的路,发现不同的人生

모든 응답(1)
刘奇

비교 및 교환 작업에는 플랫폼에 따라 잠금이 필요하지 않을 수 있지만 대부분의 플랫폼은 잠금 없는 CAS를 지원합니다. 가장 간단한 잠금은 테스트와 설정을 통해 구현되는 스핀 잠금입니다. 물론 CAS를 통해서도 구현할 수 있습니다.

잠금이 실패하면 스핀 잠금이 계속 시도되어 CPU 리소스가 소진됩니다.

등 으아아아

시스템 인터페이스에서 제공하는 잠금은 일반적으로

과 유사하게 잠금에 실패할 경우 스레드를 일시 중지합니다. 으아아아

여기 wait_for_unlock_signal()는 가상의 함수입니다. 그러나 잠금은 여전히 ​​cas와 같은 원자적 작업에 의존합니다. 즉, 이제 잠금은 테스트, 설정, 비교, 교환과 같은 몇 가지 기본적인 원자적 작업을 통해 구현됩니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!