我目前正在尝试解决一个基于生产者 - 消费者模型的并发编程问题。我有一个有界的缓冲区,存储以先进先出方式进入和离开缓冲区的整数值。生产者 - 消费者模型;存储缓冲区进入和退出时间
我想要做的是随机化每个对象停留在缓冲区中的时间量,在此之后它会被标记给使用者,以便从缓冲区收集此对象。
我的想法到目前为止如下:
在生产者端,
int
被分配给每一个值。除了此int
(用于标识对象),将创建一个日期戳记以存储对象放入缓冲区的时间。而在缓冲区中,将生成随机“停留”时间并添加到这个开始时间创建退出时间
然后消费者类将首先搜索缓冲区中的项目,然后查找已经达到其退出时间的项目,然后使用生成的
int
从缓冲区中删除该对象识别哪个元素已被删除
有没有办法用一个数组来做到这一点?
我应该看看平行数组,其中一个用于存储标识每个元素的整数,还有一个用于存储入口时间的并行索引?
在这最后一种情况下,我会在缓冲区中使用2个put方法将“时间戳”分配给第二个数组中的并行索引。
您可以使用阻塞队列作为有界缓冲区。像ArrayBlockingQueue(int容量),如果你不想处理低级线程同步,就像在同步的add/remove方法中使用wait()和notify()方法一样。 –
Aniket