Inflearn Community Q&A
스핀 락에서 CPU 점유율 관련한 질문입니다!
Written on
·
156
·
Edited
0
안녕하세요!
스핀이 계속 되면서 CPU 점유율이 치솟는 문제에 대한 대안으로 sleep_for(1ms)를 호출하는 건 어떻게 생각하실지 궁금합니다.
질문을 다 하고 나니, 커널의 도움을 굳이 받지 않고 오래 대기하지 않아도 되는 상황이 보장될 때 사용하면 좋은 락이 스핀 락인데 sleep_for()을 하면 컨텍스트 스위칭이 발생하겠네요. 이렇게 되면 스핀 락을 쓰는 이유가 퇴색될 것 같다는 생각이 듭니다.
고견 부탁드립니다🙏
Answer 2
1
1
안녕하세요, 인프런 AI 인턴입니다. literate_t님
스핀 락과 관련한 CPU 점유율 문제에 대한 질문을 주셨네요. 관련된 주제에 대한 기존 답변을 찾아보았습니다.
안녕하세요 선생님 lock과 spinlock에 대해서 질문드립니다.
- 이 게시물에서 스핀 락과 일반 락의 차이점, 특히 스핀 락의 효용성에 대해 다룹니다. 스핀 락은 비교적 짧은 시간 동안의 락일 때 유리하며, 지속적인 CPU 점유로 인해 busy waiting이 발생하는 반면, 일반 락은 컨텍스트 스위칭을 통해 CPU 자원을 덜 소모합니다.
- 이 게시물에서 스핀 락과 일반 락의 차이점, 특히 스핀 락의 효용성에 대해 다룹니다. 스핀 락은 비교적 짧은 시간 동안의 락일 때 유리하며, 지속적인 CPU 점유로 인해 busy waiting이 발생하는 반면, 일반 락은 컨텍스트 스위칭을 통해 CPU 자원을 덜 소모합니다.
-
- 여기서는 스핀 락과 뮤텍스의 차이점을 설명합니다. 특히 뮤텍스는 필요 시 sleep 상태로 들어가며, 스핀 락은 계속해서 락을 시도하는 방식이라 CPU 점유율에서 차이가 발생합니다.
- 여기서는 스핀 락과 뮤텍스의 차이점을 설명합니다. 특히 뮤텍스는 필요 시 sleep 상태로 들어가며, 스핀 락은 계속해서 락을 시도하는 방식이라 CPU 점유율에서 차이가 발생합니다.
-
- 이 게시물에서는 스핀 락과 sleep의 차이점, 그리고 각 접근 방식의 장단점에 대해 논의합니다. 스핀 락은 짧은 대기 시간에 유리하며, sleep은 장기적인 자원 점유에서 유리합니다.
- 이 게시물에서는 스핀 락과 sleep의 차이점, 그리고 각 접근 방식의 장단점에 대해 논의합니다. 스핀 락은 짧은 대기 시간에 유리하며, sleep은 장기적인 자원 점유에서 유리합니다.
스핀 락은 비교적 짧은 시간 동안의 경합이 예상될 때 사용하는 것이 효율적입니다. 만약 long-term 경합이 발생할 가능성이 높다면, sleep이나 yield 함수를 사용하는 것이 좋습니다. sleep_for(1ms)를 사용하여 컨텍스트 스위칭이 발생하면, 스핀 락의 장점이 퇴색될 수 있기 때문에, 상황에 맞게 유동적으로 락의 종류를 선택하는 것이 중요합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.






답변 감사합니다!
그 5000번 카운팅도 원자적으로 연산했을까요~?
atomic 연산이 생각보다 무거운 연산이라고 말씀하셨을 때 남용하면 안 되겠다는 생각이 들었는데, 스핀 락 카운팅할 때 사용하면 괜찮은지 알려주시면 나름의 기준점이 될 것 같습니다!