2013-08-28 3 views
-1

스레드는 다른 스레드가 동기화 된 블록에 액세스하는 잠금을 해제 할 때까지 대기 할 수 있습니다. 다른 스레드가 동기화 된 블록에 액세스하는 동안 스레드가 얼마나 오래 기다릴 수 있는지 알고 싶습니다. 언제 다른 스레드가 잠금을 해제했는지 알 수 있습니까?다른 스레드가 동기화 된 블록에 액세스하는 동안 스레드가 대기하는 시간은?

+3

영원히 기다릴 수 있습니다. 이 상황을 교착 상태라고합니다. –

+0

비 교착 상태 스레드는 어떻습니까? – Murali

+1

@Murali : 자물쇠가 풀릴 때까지 기다릴 것입니다. – SLaks

답변

1

변수 lock이 한 스레드에서 동기화 된 경우 lock을 동기화하려고 시도하는 다른 모든 스레드는 lock이 더 이상 동기화되지 않을 때까지 차단됩니다.

//all other threads waiting on thread 1... 
synchronized(lock) 
{ 
    //thread 1 storing digits of pi into linked list... or whatevs. 
} 

다른 사람들은 말했듯이 스레드는 변수가 동기화 될 때까지 무기한 대기합니다.