我有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