我目前正在嘗試解決一個基於生產者 - 消費者模型的併發編程問題。我有一個有界的緩衝區,存儲以先進先出方式進入和離開緩衝區的整數值。生產者 - 消費者模型;存儲緩衝區進入和退出時間
我想要做的是隨機化每個對象停留在緩衝區中的時間量,在此之後它會被標記給使用者,以便從緩衝區收集此對象。
我的想法到目前爲止如下:
在生產者端,
int
被分配給每一個值。除了此int
(用於標識對象),將創建一個日期戳記以存儲對象放入緩衝區的時間。而在緩衝區中,將生成隨機「停留」時間並添加到這個開始時間創建退出時間
然後消費者類將首先搜索緩衝區中的項目,然後查找已經達到其退出時間的項目,然後使用生成的
int
從緩衝區中刪除該對象識別哪個元素已被刪除
有沒有辦法用一個數組來做到這一點?
我應該看看平行數組,其中一個用於存儲標識每個元素的整數,還有一個用於存儲入口時間的並行索引?
在這最後一種情況下,我會在緩衝區中使用2個put方法將「時間戳」分配給第二個數組中的並行索引。
您可以使用阻塞隊列作爲有界緩衝區。像ArrayBlockingQueue(int容量),如果你不想處理低級線程同步,就像在同步的add/remove方法中使用wait()和notify()方法一樣。 –
Aniket