2012-02-08 50 views
2

我有多線程應用程序。某些線程有時會因爲外部網絡原因發生異常。我認爲使用例如等待(60000) - 1分鐘重新連接。 我應該明確提出在synchronized方法例如爲:等待(有些時候)必須始終處於同步方法嗎?

public void synchronized reconnect(){ 
    wait(60000); 
................. } 

,或者可能:

public void reconnect(){ 
    wait(60000); 
................. } 

感謝。

回答

4

它必須是!在您實際等待之前,您必須獲得對象的鎖定。

乾杯,尤金。

5

正如Eugene寫的,當前線程必須獲取鎖定對象。這不是必須通過同步方法完成。您還可能通過顯式同步獲取鎖定:

public void reconnect() { 
    // some code 

    synchronized (this) { 
     wait(60000); 
    } 

    // some other code 
} 

這取決於您需要實現的。