package queue
import "github.com/eapache/queue"
Package queue provides a fast, ring-buffer queue based on the version suggested by Dariusz Górecki. Using this instead of other, simpler, queue implementations (slice+append or linked list) provides substantial memory and time benefits, and fewer GC pauses.
The queue implemented here is as fast as it is for an additional reason: it is *not* thread-safe.
Index ¶
Types ¶
type Queue ¶
type Queue struct {
// contains filtered or unexported fields
}
Queue represents a single instance of the queue data structure.
func New ¶
func New() *Queue
New constructs and returns a new Queue.
func (*Queue) Add ¶
func (q *Queue) Add(elem interface{})
Add puts an element on the end of the queue.
func (*Queue) Get ¶
Get returns the element at index i in the queue. If the index is invalid, the call will panic. This method accepts both positive and negative index values. Index 0 refers to the first element, and index -1 refers to the last.
func (*Queue) Length ¶
Length returns the number of elements currently stored in the queue.
func (*Queue) Peek ¶
func (q *Queue) Peek() interface{}
Peek returns the element at the head of the queue. This call panics if the queue is empty.
func (*Queue) Remove ¶
func (q *Queue) Remove() interface{}
Remove removes and returns the element from the front of the queue. If the queue is empty, the call will panic.
Source Files ¶
- Version
- v1.1.0 (latest)
- Published
- Aug 5, 2016
- Platform
- darwin/amd64
- Last checked
- 1 week ago –
Tools for package owners.