Ton*_*ony 19 java multithreading notify wait
线程可以Object.wait()
用来阻塞直到另一个线程调用notify()
或notifyAll()
在该对象上.
但是如果一个线程想要等到多个对象中的一个被发出信号呢?例如,我的线程必须等待,直到要么 a)使用字节可用从阅读InputStream
或b)项被添加到ArrayList
.
线程如何等待这些事件发生?
编辑
这个问题涉及等待多个线程完成 - 我的情况涉及一个线程等待许多对象中的一个被单独化.
线程不能一次等待多个对象.
的wait()
和notify()
方法是特定对象的.该wait()
方法挂起当前执行的线程,并告诉对象跟踪挂起的线程.该notify()
方法告诉对象唤醒它当前正在跟踪的挂起线程.
有用的链接:一个线程可以在Java(6)中一次调用两个锁上的wait()吗?