package workerpool import ( "sync" "testing" ) func Benchmark(b *testing.B) { pool := New(func(task Task) { task.Return(task.Param(0)) }, WorkerCount(10), QueueSize(2000)) pool.Start() var wg sync.WaitGroup for i := 0; i < b.N; i++ { wg.Add(1) go func(i int) { <-pool.Submit(i) wg.Done() }(i) } wg.Wait() }