2011-11-19 3 views
0

혼란이 있습니다. 내가 Thread.yield() 메서드는 현재 실행중인 스레드가 일시 중지하고 "같은 우선 순위"의 남아있는 스레드 기회를주는 어딘가 읽었습니다.수익률 혼란

이제 항상 우선 순위 스레드가 실행되거나 높은 우선 순위 스레드가 실행될 수 있습니다. 그리고 만약 현재 실행중인 쓰레드가 어떤 객체에 어떤 lock을 가지고 있다고 가정하면, yeild 메소드를 실행 한 후에 lock을 줄 것인가?

답변

3

을 호출하면 현재 스레드가 일시 중지되고 스케줄러가 다른 스레드를 실행할 수 있습니다. 우선 순위는 스케줄러에 의해 관리됩니다.

물론, 아니요. 잠금을 해제하지 않으셔도됩니다. 그렇게하면 동기화가 중단됩니다.

+0

알겠습니다. 그러나 현재 스레드가 일시 중지되고 다른 스레드에 실행될 기회가 주어지면 그 스레드의 우선 순위는 무엇인지 생각하고 있습니다. 일시 중지 된 스레드보다 높거나 같습니다. – aj983

+0

스케줄러의 역할을 잘 예측하거나 예측할 수는 없습니다. –

+1

일반적으로 수령액을 – Kevin