标签:exp 最大 ble 素数 cpp isa pop data 另一个
caffe的datareader类中
class QueuePair { public: explicit QueuePair(int size); ~QueuePair(); BlockingQueue<T*> free_; BlockingQueue<T*> full_; DISABLE_COPY_AND_ASSIGN(QueuePair); };
这个就是双阻塞队列,先将free队列填充到最大长度,然后按照如下规则:
1,每当生产者push时,先将full队列pop,如果full为空,不可pop,那么表明free队列已满,则free队列不可push,如果full队列可以pop,那么执行pop,并对free队列push。
2,每当消费者pop时,先将free队列pop,如果可以pop,则进行pop并消费,然后将其push进入full队列,如果free队列不可pop为空,则消费者不可pop。
3,核心思想是让full和free队列实际元素数量之和恒定为最大队列长度不变,通过判断一个队列是否为空来判断另一个队列是否为满。
4,主要是我们可能不知道队列最大长度时,无法判断是否满时采用这种方法。
标签:exp 最大 ble 素数 cpp isa pop data 另一个
原文地址:http://www.cnblogs.com/tomsonsgs/p/7291844.html