현재 스레드가 어떤 스레드를 소유하고 있는지 발견하는 방법이 있습니까? 특히 잠금이 걸리지 않도록하는 스레드를 인쇄하는 코드를 찾고 있습니다. 나는 주어진 타임 아웃을 위해 잠금을 시도한 다음, 어떤 스레드가 잠금을 차단하고 있는지보고하려고한다. 잠금 소유자를 얻을 수있는 다른 문서화되지 않은 방법은, 일반적으로 작동이 보장되지 않고,이자물쇠 (모니터)의 소유자를 어떻게 찾을 수 있습니까?
private int lockOwner;
private object lockObject = new object();
...
void foo() {
lock(lockObject) {
lockOwner = Thread.CurrentThread.ManagedThreadId;
// etc..
}
}
가 수행합니다
왜 C#에 특정한가요? 자바의 경우에는 같은 의심 일 수 있습니다. –
@Mask 문제는 아마도 스레드와 잠금 기능을 가진 모든/대부분의 런타임/언어에 존재할 것입니다.하지만 그는 특별히 코드를 요구합니다. –