我有2个主题。块和唤醒消费者线程/
他们每个人都从共享缓冲区读取一些数据。
currentDataBuffer.get(thisID); //currentDataBuffer is my shared buffer object
我要拦截的每个线程每次调用拿到后,并释放它,当所有线程读取缓冲区(一次) 所以我用这个currentDataBuffer
对象锁定:
currentDataBuffer.get(thisID);
synchronized (currentDataBuffer) {
currentDataBuffer.wait();
}
问题当所有线程完成从缓冲区读取(每行一行)时,如何释放这些线程?
里面currentDataBuffer
我有一个地图,我存储从缓冲区中读取数据的线程的ID。
如何使用this.notifyAll();
(来自currentDataBuffer
)来唤醒所有锁定的线程?
我需要一个n线程的缓冲区,只有在所有线程都读取相同的数据后,我需要移动到缓冲区中的下一个项目。 – kenny 2011-12-18 16:36:50