[common c/c++] ring buffer/circular buffer

前言:

ring buffer/circular buffer 又名环形队列,其容量是固定的,当数据满的时候,新来的数据会覆盖最古老的数据,这种数据结构的特点是数据的写入不会因为队列满了而停止,同时也会导致旧数据的丢失,因此,常用在一些对老旧数据不敏感的场景。

这种数据结构的主要用途不是高效的 lock free 生产者消费者模型,而是解决缓冲区固定大小的场景。当然,也可以设计程 lock free 的 ring buffer/circular buffer。

设计思路:

implement with c++ 11:

implement with c:

lock free practice:

你可能感兴趣的:(#,Common/Linux,C/C++,common)