멀티스레딩
스핀락(Spinlock)
1. 스핀락이란동기화 메커니즘의 한 종류로, 바쁜 대기(Busy waiting) 방식을 사용한다. lock을 획득하려는 스레드가 lock이 해제될 때까지 계속해서 lock의 상태를 확인한다. 이 과정에서 CPU 사이클을 소비하며 "spin"(회전)한다고 표현한다.일반적으로 atomic 변수를 사용하여 구현한다. 2. 스핀락 vs 일반 Lock스핀락: - 짧은 임계 영역, 컨텍스트 스위칭 비용이 큰 경우 - CPU 사용률이 높지만, 대기 시간이 짧음 일반 Lock: - 긴 임계 영역, 대기 시간이 길 수 있는 경우 - CPU 사용률이 낮지만, 컨텍스트 스위칭으로 인한 오버헤드 발생 3. 스핀락 사용 시나리오lock을 획득할때까지 계속해서 lock의 상태를 확인하기 때문에 빠른 연산이나 짧은..
2024. 10. 12. 00:03