Skip to content

Latest commit

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

queue

-- import "github.com/anikhasibul/queue"

package queue gives you a queue group accessibility. Helps you to limit goroutines, wait for the end of the all goroutines and much more...

maxRoutines := 50
q := queue.New(maxRoutines)
defer q.Close()
for i := 0; i != 1000; i++ {
q.Add()
go func(c int) {
defer q.Done()
fmt.Println(c)
}(i)
}
//wait for the end of the all jobs
q.Wait()

Usage

type Q

typeQstruct {
}

Q holds a queue group and it's essentials.

func New

funcNew(maxint) *Q

New creates a new queue group. It takes max running jobs as a parameter.

func (*Q) Add

func (q*Q) Add()

Add adds a new job to the queue.

func (*Q) Done

func (q*Q) Done()

Done decrements the queue group counter.

func (*Q) Wait

func (q*Q) Wait()

Wait waits for the end of the all jobs.

func (*Q) Current

func (q*Q) Current() int

Current returns the number of current running jobs.

func (*Q) Close

func (q*Q) Close()

Close closes a queue group gracefully.

About

package queue gives you a queue group accessibility. Helps you to limit goroutines, wait for the end of the all goroutines and much more.

Topics

Resources

Stars

19 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages