sheerun / Queue
Lightweight, thread-safe, blocking FIFO queue based on auto-resizing circular buffer
Stars: ✭ 59
Queue
Lightweight, tested, performant, thread-safe, blocking FIFO queue based on auto-resizing circular buffer.
Usage
package main
import (
"fmt"
"sync"
"time"
"github.com/sheerun/queue"
)
func main() {
q := queue.New()
var wg sync.WaitGroup
wg.Add(2)
// Worker 1
go func() {
for i := 0; i < 500; i++ {
item := q.Pop()
fmt.Printf("%v\n", item)
time.Sleep(10 * time.Millisecond)
}
wg.Done()
}()
// Worker 2
go func() {
for i := 0; i < 500; i++ {
item := q.Pop()
fmt.Printf("%v\n", item)
time.Sleep(10 * time.Millisecond)
}
wg.Done()
}()
for i := 0; i < 1000; i++ {
q.Append(i)
}
wg.Wait()
}
License
MIT
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].