一个线程是否有可能在被等待之前执行一些操作,我想要做的是我希望这个线程wait()
在被等待之前到另一个线程,
它是一个分布式系统,具有客户端、事务管理器和锁管理器,最后两个驻留在中间件服务器上。锁管理器可能wait()
是事务管理器的一个线程,我希望这个线程能够wait()
在等待自己之前成为客户端线程。
一个线程是否有可能在被等待之前执行一些操作,我想要做的是我希望这个线程wait()
在被等待之前到另一个线程,
它是一个分布式系统,具有客户端、事务管理器和锁管理器,最后两个驻留在中间件服务器上。锁管理器可能wait()
是事务管理器的一个线程,我希望这个线程能够wait()
在等待自己之前成为客户端线程。
您不能“等待”另一个线程。如果你调用wait()
一个对象,它所做的只是让当前线程进入睡眠状态,直到它被通知(通过notify()
or notifyAll()
)或由于所谓的虚假唤醒。我建议阅读Java 教程中的“课程:并发”。特别是关于受保护块的部分应该是你感兴趣的。
所以,如果你想告诉其他线程你即将开始等待一个对象,例如像这样
// We are somewhere, in some method ...
synchronized(someObj) {
someObj.wait();
}
您必须实现某种观察者模式,在其中可以注册其他对象。