lockfree

package
v1.0.51 Latest Latest
Warning

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

Go to latest
Published: Jul 10, 2024 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CQueue

type CQueue[T any] struct {
	// contains filtered or unexported fields
}

CQueue is a concurrent unbounded queue which uses two-Lock concurrent queue algorithm.

func NewCQueue

func NewCQueue[T any]() *CQueue[T]

NewCQueue returns an empty CQueue.

func (*CQueue[T]) Dequeue

func (q *CQueue[T]) Dequeue() interface{}

func (*CQueue[T]) DequeueAsType

func (q *CQueue[T]) DequeueAsType() (T, bool)

func (*CQueue[T]) Enqueue

func (q *CQueue[T]) Enqueue(v T)

Enqueue puts the given value v at the tail of the queue.

type Queue

type Queue[T any] struct {
	// contains filtered or unexported fields
}

Queue is a lock-free unbounded queue.

func NewQueue

func NewQueue[T any]() *Queue[T]

NewQueue returns an empty queue.

func (*Queue[T]) Dequeue

func (q *Queue[T]) Dequeue() interface{}

func (*Queue[T]) DequeueAsType

func (q *Queue[T]) DequeueAsType() (T, bool)

func (*Queue[T]) Enqueue

func (q *Queue[T]) Enqueue(v T)

Enqueue puts the given value v at the tail of the queue.

type SliceQueue

type SliceQueue[T any] struct {
	// contains filtered or unexported fields
}

SliceQueue is an unbounded queue which uses a slice as underlying.

func NewSliceQueue

func NewSliceQueue[T any](n int) (q *SliceQueue[T])

NewSliceQueue returns an empty queue. You can give a initial capacity.

func (*SliceQueue[T]) Dequeue

func (q *SliceQueue[T]) Dequeue() interface{}

func (*SliceQueue[T]) DequeueAsType

func (q *SliceQueue[T]) DequeueAsType() (T, bool)

func (*SliceQueue[T]) Enqueue

func (q *SliceQueue[T]) Enqueue(v T)

Enqueue puts the given value v at the tail of the queue.

Jump to

Keyboard shortcuts

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