5
내 코드가 잠겨 있습니다.
두 스레드가 동시에 실행됩니다. 스레드가 해당 객체를 잠그고 있는지 어떻게 알 수 있습니까?개체가 잠겨있는 경우 어떻게 찾습니까? C#
private readonly object _lockObject = new Object();
// Both methods running
public void Method1()
{
if(certainCriteria)
{
lock(_lockObject)
{
//doWork;
}
}
}
// Both methods running
public void Method2()
{
if(isLocked?(_lockObject))
{
//doWork;
}
}
누구나 isLocked를 보유하고 있습니까? 방법?
미리 감사드립니다.
@ 존 : Yaow가 너무 빠르며, yaaw (검은 국가 악센트를 관리 할 수 있다면 더 잘 읽음)입니다. 그것은 거대한 경고를 통해 제안하려고했던 것이 었습니다. "그것은 우리가"자물쇠가 어떻게 작동하는지 "알고있는 기초 위에서 작동합니다. – AnthonyWJones
저는 잠금 장치가 작동하는 방식을 아는 것에 달려 있다는 사실에 특별히 신경 쓰지는 않습니다. 그것은 그것이 틀린 명백한 느낌입니다. 유용하다고 생각되는 상황이 있지만 실제로 사용되는 곳보다 적을 수도 있습니다. –
안녕 다시 Jon! BufferManager를 구현 중입니다. 기본적으로 버퍼 스택이 있습니다. 스레드 pop()이 스택이고 비어있는 경우 - 스레드가 스택을 채우는 동안 모든 스레드가 다음 pop()에서 대기하도록합니다. 채워지면 다른 모든 스레드가 계속 팝업됩니다. 비록 메커니즘을 잠금 C# 확실하지 오전! – divinci