gfreequeue

package module
v0.0.0-...-aadb042 Latest Latest
Warning

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

Go to latest
Published: Aug 23, 2018 License: MIT Imports: 1 Imported by: 1

README

gfreequeue

gfreequeue is simple lock-free queue written in golang. this queue is goroutine-safe.

Requirement

Go (>= 1.8)

Installation

go get github.com/hlts2/gfreequeue

Example

Basic Example

Enqueu is Enqueu(value interface{}), so you can enqueu any type of object


q := New()

q.Enqueue(1)
q.Enqueue(2)
q.Enqueue(3)

q.Dequeue() // 1
q.Dequeue() // 2
q.Dequeue() // 3

Iterator Support

q := New()

q.Enqueue(1)
q.Enqueue(2)
q.Enqueue(3)

q.Iterator() // [1, 2, 3]

/*
for _, v := range q.Iterator() {
  fmt.Println(v)
}
*/

Benchmarks

gfreequeue vs lfreequeue vs lane

Bench

Author

hlts2

LICENSE

gfreequeue released under MIT license, refer LICENSE file.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Queue

type Queue interface {
	Enqueue(value interface{})
	Dequeue() interface{}
	Length() int
	Iterator() []interface{}
}

Queue -

func New

func New() Queue

New initialize new instance

Jump to

Keyboard shortcuts

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