2013-09-21 35 views
0

我很好奇,想知道如何synchronized關鍵字實際上是在Java函數,我有以下的代碼片段讓我們說 - :java中的synchronized關鍵字如何工作?

synchronized(lockObject){ 
// some activity 
} 

如果同步說法是不能夠獲得鎖將它重試或應我把它放在一個while循環中,如果你能解釋它爲什麼會發生,那將是非常好的。

是什麼

synchronized(lockObject){ 
} 

while(true){ 
synchronized(lock_object){ 
break; 
} 
} 
+5

它會阻止,直到它得到通知並可以獲取監視器。 SO應該有很多相關的問題和答案。 –

+0

但這個語句同步(lockObject)只會執行一次我想,如果它不能獲取鎖,它將不會運行它的塊中的任何語句我真的嗎? – AnkitSablok

+0

如果它無法獲得鎖定,它將永遠等待。 –

回答

1

之間的差別其實沒有區別。如果鎖不可用,同步塊將一直等到鎖可用。沒有必要循環。

+0

synchronized(lockObject)和while(true){synchronized(lockObject)}之間的區別是 – AnkitSablok

+0

在synchronized塊之後必須有大括號。 – tbodt

+0

可能是我應該重新構建的問題 – AnkitSablok

相關問題