【发布时间】:2011-12-18 16:29:41
【问题描述】:
我有 2 个线程。
他们每个人都从共享缓冲区中读取一些数据。
currentDataBuffer.get(thisID); //currentDataBuffer is my shared buffer object
我想在每次调用 get 后阻塞每个线程,并在所有线程读取缓冲区时释放它(一次)
所以我用这个currentDataBuffer 对象作为锁:
currentDataBuffer.get(thisID);
synchronized (currentDataBuffer ) {
currentDataBuffer.wait();
}
问题是当所有线程完成从缓冲区读取(每个线程)时,我如何释放这些线程?
在currentDataBuffer 内部,我有一个映射,其中存储了从缓冲区读取数据的线程的 ID。
如何使用this.notifyAll();(来自currentDataBuffer)唤醒所有锁定的线程?
【问题讨论】:
标签: java multithreading