队列操作模型

(1)单生产者——单消费者

【高并发】多线程之无锁队列_数据

(2)多生产者——单消费者

【高并发】多线程之无锁队列_数据_02

(3)单生产者——多消费者

【高并发】多线程之无锁队列_数据_03

(4)多生产者——多消费者

【高并发】多线程之无锁队列_加锁_04

3、队列数据定长与变长

(1)队列数据定长

【高并发】多线程之无锁队列_加锁_05

(2)队列数据变长

【高并发】多线程之无锁队列_csdn博客_06

并发无锁处理

(1)单生产者——单消费者模型

  此种场景不需要加锁,定长的可以通过读指针和写指针进行控制队列操作,变长的通过读指针、写指针、结束指针控制操作。具体实现可以参考linux内核提供的kfifo的实现。可以​

(2)(一)多对多(一)模型

  正常逻辑操作是要对队列操作进行加锁处理。加锁的性能开销较大,一般采用无锁实现。无锁实现原理是CAS、FAA等机制。定长的可以参考:

​http://coolshell.cn/articles/8239.html​