DeadLock 탐지에서 재귀 Lock 상황에 대해 궁금합니다.
3
2 câu hỏi đã được viết
이전에 강의에서 만든 Lock은 같은 쓰레드가 재귀적으로 Lock을 잡을 수 있다고 기억합니다.
(아마 재귀 Lock의 상황을 제가 오해하고 있을 수도 있다고 생각합니다.)
오늘 만든 DeadLock Profiler대로면,
하나의 스레드가 A lock -> B lock -> A lock을 잡으려하면 DeadLock이 발생하는 것 같습니다.
제가 앞 강의의 RW SpinLock의 정책을 잘못 알고 있는걸까요?
항상 강의 잘보고 있습니다. 좋은 강의에 감사드려요!
Câu trả lời 1
0
안녕하세요, 인프런 AI 인턴입니다. 한천님.
강의에서 제공되는 Lock 구조에서는, 동일한 스레드 내에서의 재귀적인 Lock 사용을 허용했을 가능성이 있습니다. 즉, 동일한 스레드가 여러 번 같은 Lock을 잡을 수 있도록 설정되어 있을 수 있습니다. 이는 보통 Recursive Lock 또는 재귀적인 락이라고 부릅니다.
하지만 DeadLock Profiler의 경우, 서로 다른 Lock 간의 의존성을 추적하며 Deadlock 여부를 탐지하게 됩니다. 이 경우 하나의 스레드가 A lock을 잡은 상태에서 다시 A lock을 잡으려고 하면, 스레드는 자기 자신에 의해 막히게 되어 Deadlock이 발생할 수 있다고 판단될 수 있습니다.
다음 링크에서 관련 내용을 더 깊게 확인하실 수 있습니다:
- Deadlock detector 동작 방식 및 정책: 여기에서 Rookiss 강사님의 Deadlock 탐지 컨셉과 관련한 설명을 들어보실 수 있습니다. Deadlock이 어떻게 탐지되며, 왜 발생하는지를 이해하는 데 도움이 될 것입니다.
이외에 Deadlock을 포착하고 피할 수 있는 다양한 기법에 대해서도 학습을 해보시면 많은 도움이 될 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
LockFreeStack #2에서 ABA 문제
0
47
1
RefCounting 강의 질문있습니다.
0
67
2
writeLock을 잡을때 꼭 empty 상태여야하는 이유?
0
91
2
Memory Pool에서 오버플로우 질문입니다.
0
108
2
포토폴리오 및 진로 관련하여 고민입니다.
0
202
1
포토폴리오 관련 고민입니다.
0
114
1
실무에서도 alloc, 스마트포인터 등을 구현해서 쓰는지 궁금합니다.
0
124
2
성능 테스트 결과
0
127
2
게임 서버 Stateful, Stateless 진로 고민
0
161
1
WaitOnAddress와 Sleep의 차이 질문
0
117
1
궁금한거 있습니다.
0
103
2
JobTimer 구동 스레드
0
132
2
TryPop() 동작 관련 질문
0
95
1
로드맵 C#서버 C++서버 방향성 질문
0
186
2
스레드 id를 출력할떄 메인스레드 id도 출력되나요?
0
93
1
생명주기를 위한 의도적 복사
0
110
2
락프리의 실무에서 사용 질문
0
171
2
32bit threadID와 16비트 상위 WriteFlag에 대해
0
122
2
mutex와 sleep 차이점
0
146
1
실무에서는 어떠한 코드 스타일을 사용하는지 궁금합니다
0
181
2
Stomp Allocator의 Release함수에 대한 질문입니다.
0
113
1
공부법 관련해서
0
200
2
MakeShared 함수 관련
0
127
1
지금까지 서버코어에서 만든 내용에 대해 궁금한 점이 있어서 질문 드립니다.
0
163
2

