基本介绍
动态大小的并发安全队列。同时, gqueue 也支持固定队列大小,固定队列大小时队列效率和标准库的 channel 无异。
使用场景:
该队列是并发安全的,常用于多 goroutine 数据通信且支持动态队列大小的场景。
使用方式:
import "github.com/gogf/gf/v2/container/gqueue"
接口文档:
https://pkg.go.dev/github.com/gogf/gf/v2/container/gqueue
泛型支持:
从 v2.10 版本开始,gqueue 提供了泛型队列类型:
TQueue[T]:泛型队列,提供类型安全的队列操作- 支持先进先出的数据结构操作
- 优化了队列长度计算逻辑,修复了测试用例中的循环结构问题
- 推荐在新项目中使用泛型队列
相关文档
📄️ 队列类型-基本使用
使用GoFrame框架中的gqueue组件进行基本的队列操作,包括元素的入队和出队、队列长度的获取以及队列的关闭。v2.10版本新增泛型队列TQueue,提供类型安全的队列操作。详细演示了通过Push和Pop方法管理队列元素,并展示了队列与glist链表的关系,确保在GoFrame框架下高效构建并发安全的程序逻辑。
📄️ 队列类型-性能测试
在GoFrame框架中gqueue与标准库channel的性能测试。通过基准测试展示了gqueue在动态存储和弹性容量上的优势,相对于channel的固定内存分配和容量限制,gqueue在创建效率和灵活性表现更佳。