You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.