Java 等待(某段时间)是否必须始终在同步方法中?

Java 等待(某段时间)是否必须始终在同步方法中?,java,database,multithreading,wait,synchronized,Java,Database,Multithreading,Wait,Synchronized,我有多线程应用程序。在某些线程中,由于外部网络原因,有时会发生异常。我想使用例如等待(60000)-1分钟来重新连接。 我是否应明确输入同步方法,例如: public void synchronized reconnect(){ wait(60000); ................. } 或者有可能: public void reconnect(){ wait(60000); ................. } 谢谢。一定是这样!您必须先获得对象的锁,然后才能真

我有多线程应用程序。在某些线程中,由于外部网络原因,有时会发生异常。我想使用例如等待(60000)-1分钟来重新连接。 我是否应明确输入同步方法,例如:

public void synchronized reconnect(){
     wait(60000);
................. }
或者有可能:

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

谢谢。

一定是这样!您必须先获得对象的锁,然后才能真正等待


干杯,尤金。

正如尤金所写,当前线程必须获得对对象的锁定。这不需要通过同步方法来完成。您还可以通过显式同步获得锁:

public void reconnect() {
   // some code 

   synchronized (this) {
      wait(60000);
   }

   // some other code
}
这取决于你需要实现的目标