摘要:
我想,很多的程序员都知道如何利用环形队列来避免使用锁。那就是,生产者只更改写指针,消费者只更改读指针。当然这里的指针一般可能是整数下标。例如:read_pos为消费者更改的读指针,每读走一个元素则read_pos=(read_pos+1)%SIZE,write_pos为生产者更改的写指针,每写完一个元素,write_pos=(write_pos+1)%SIZE,在消费者看来,只要队列不空,就可以读取当前读指针处的元素,在生产者看来,只要队列不满,就可以在当前的写位置上写一个元素。队列为空的条件为:read_pos=write_pos(对吗?)队列为满的条件为:(write_pos+1)%SIZ 阅读全文