중첩된 잠금으로 인해 교착 상태가 발생하지 않는 이유는 무엇입니까? 왜 이 코드는 교착 상태를 일으키지 않습니까? private static readonly object a = new object(); ... lock(a) { lock(a) { .... } } 스레드가 이미 잠금을 보유하고 있으면 문제 없이 다시 "잠금"할 수 있습니다. 그 이유에 대해, (그리고 그것이 좋은 생각인 이유에 대해) a -> b 프로그램의 다른 곳에 정의된 잠금 순서가 있는 다음 상황을 고려합니다. void f() { lock(a) { /* do stuff inside a */ } } void doStuff() { lock(b) { //do stuff inside b, that involves leaving b in an ..