等待(某个时间)必须始终采用同步方法吗?

时间:2012-02-08 12:50:12

标签: java database multithreading wait synchronized

我有多线程应用程序。某些线程中的某个时间因外部网络原因发生异常。我想用例如等待(60000) - 重新连接1分钟。 我应该明确地使用同步方法,例如:

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

或者可能:

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

感谢。

2 个答案:

答案 0 :(得分:5)

正如Eugene所写,当前线程必须获取对象的锁定。没有必要通过同步方法完成。您也可以通过显式同步来获取锁定:

public void reconnect() {
   // some code 

   synchronized (this) {
      wait(60000);
   }

   // some other code
}

这取决于你需要实现的目标。

答案 1 :(得分:4)

必须是!在实际等待之前,您必须获取对象的锁定。

干杯,尤金。