Java 线程上的非被动等待

Java 线程上的非被动等待,java,multithreading,runnable,Java,Multithreading,Runnable,一个线程是否可能在等待之前执行一些操作,我想做的是,我希望这个线程在等待自身之前执行另一个线程 它是一个分布式系统,包含客户端、事务管理器和锁管理器,最后两个驻留在中间件服务器上。锁管理器可以wait()事务管理器的一个线程,我希望这个线程在等待自身之前能够wait()客户端线程。您不能“等待”另一个线程。如果调用一个对象,它所做的就是发送当前线程进入睡眠状态,直到它收到通知(或)或由于所谓的虚假唤醒。我建议你读这本书。特别是关于的那部分你应该感兴趣 所以,如果您想告诉其他线程您将要开始等待一个

一个线程是否可能在等待之前执行一些操作,我想做的是,我希望这个线程在等待自身之前执行另一个线程

它是一个分布式系统,包含客户端、事务管理器和锁管理器,最后两个驻留在中间件服务器上。锁管理器可以
wait()
事务管理器的一个线程,我希望这个线程在等待自身之前能够
wait()
客户端线程。

您不能“等待”另一个线程。如果调用一个对象,它所做的就是发送当前线程进入睡眠状态,直到它收到通知(或)或由于所谓的虚假唤醒。我建议你读这本书。特别是关于的那部分你应该感兴趣

所以,如果您想告诉其他线程您将要开始等待一个对象,例如

// We are somewhere, in some method ...
synchronized(someObj) {
    someObj.wait();
}

您必须实现某种类型的观察者模式,在这里可以注册其他对象。

不确定这里的意思
Object.wait()
是最终的,不能重写。我不确定你所说的“等待”线程是什么意思。你不能在线程上调用
wait()
。我知道这是最终的,我不能重写它,我想知道是否有人会通知你有人正在使线程等待
wait
,因为使thread1等待
的对象不是开源的,我想让thread2在thread1被等待之前等待
。我不明白。一个线程不能让另一个线程等待。是调用
Thread.suspend()
还是什么恶心的事?谢谢,我一时糊涂了,只有一个线程在运行整件事我知道这是最终的,我不能重写它,我的意思是,如果有人告诉我有人让线程等待,不能让线程从线程本身以外的其他地方等待。“某人”不能告诉线程等待。如果您想知道线程开始等待对象,您必须自己实现观察者模式,并在调用wait()之前调用每个观察者。