我基本上需要为我正在处理的当前项目编写一个锁,当连接失败时,调用给定方法的所有线程都应该挂起,直到重新建立连接。
如何在 Java 中再次执行此操作?自从我不得不处理这个问题以来已经有一段时间了。
我基本上需要为我正在处理的当前项目编写一个锁,当连接失败时,调用给定方法的所有线程都应该挂起,直到重新建立连接。
如何在 Java 中再次执行此操作?自从我不得不处理这个问题以来已经有一段时间了。
在重新建立连接之前,您不能不从该方法返回吗?实际实现将取决于此方法以及如何管理此连接。您可以wait()
在一个对象上,当另一个负责重新连接的线程重新建立连接时,调用notify()
解除阻塞该方法。这样,任何调用该方法的东西都会阻塞,因为当连接断开时该方法永远不会返回。
您可以使用Object 类的wait() 和 notifyAll() 方法:
public final void wait(long timeout) throws InterruptedException
导致当前线程等待,直到另一个线程为此对象调用 notify() 方法或 notifyAll() 方法,或者经过了指定的时间量。
public final void notifyAll()
唤醒正在此对象的监视器上等待的所有线程。线程通过调用其中一个等待方法在对象的监视器上等待。
但是,这绝不是向您开放的唯一解决方案。Java中还有其他的同步机制