队列类

package
v0.0.0-...-2910145 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 14, 2024 License: MIT Imports: 3 Imported by: 0

Documentation

Overview

Package gqueue 提供了动态/静态的并发安全队列。

特性:

1. 先进先出(FIFO)队列(数据 -> 链表 -> 通道);

2. 快速创建和初始化;

3. 支持动态队列大小(无限制的队列大小);

4. 从队列读取数据时会阻塞等待。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Queue

type Queue struct {
	C chan interface{} // 数据读取的基础通道。
	// contains filtered or unexported fields
}

Queue 是一个基于双链表和通道实现的并发安全队列。

func X创建

func X创建(队列长度 ...int) *Queue

New 函数返回一个空的队列对象。 可选参数 `limit` 用于限制队列的大小,默认情况下不限制大小。 当提供了 `limit` 参数时,队列将会是静态且高性能的,其性能可与标准库中的 channel 相媲美。

func (*Queue) Size弃用

func (q *Queue) Size弃用() int64

Size 是 Len 的别名。 已弃用:请改用 Len。

func (*Queue) X入栈

func (q *Queue) X入栈(值 interface{})

Push 将数据 `v` 推入队列中。 注意,如果在队列关闭后调用 Push,将会导致程序panic。

func (*Queue) X关闭

func (q *Queue) X关闭()

Close 关闭队列。 注意:此操作会立即通知所有因调用 Pop 方法而被阻塞的 goroutine 立即返回。

func (*Queue) X出栈

func (q *Queue) X出栈() interface{}

Pop 按先进先出(FIFO)的方式从队列中弹出一个元素。 注意,如果在队列关闭后调用 Pop 方法,它会立即返回空值(nil)。

func (*Queue) X取长度

func (q *Queue) X取长度() (长度 int64)

Len 返回队列的长度。 注意,如果使用无限大小的队列,结果可能不准确,因为存在一个异步通道一直在不断地读取该列表。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL