# ring_queue **Repository Path**: smart-link001/ring_queue ## Basic Information - **Project Name**: ring_queue - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: add-license-1 - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-08-06 - **Last Updated**: 2024-08-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 通用循环队列 # 1. 简介   该循环队列是一个同时支持一写一读、多写一读、多写多读的通用、高效的队列,且具有原子性,可用于消息队列、异步日志的读写等场景。为了提升性能,我们采用了inplacement new 来减少内存的分配、复制,同时我们每次读、写操作,都会进行字节对齐,来提升内存的访问速度。   队列类名之所以包含一个Compact(紧凑的),是因为在保证性能的同时,还兼顾到了内存的紧凑性。   这个循环队列一写一读、多写一读部分,已经经过了一款百万DAU的线上项目的验证,可以放心使用,多写多读只是在测试环境压测过,使用中如果遇到什么问题请留言。 # 2. 使用 ## 2.1 Init multi_w 参数控制是否多线程 Push multi_r 参数控制是否多线程 Pop ## 2.2 编译 make ## 2.3 测试 ./queue_test push_thread_num pop_thread_num