- We will only start a goroutine when needed. That means, we won't start all the goroutines when initializing.
- We will adjust the goroutine number dynamically.
Install
go get github.com/legendtkl/ppl
Example
package main
import (
"fmt"
"github.com/legendtkl/pool"
"time"
)
func main() {
wp, err := pool.NewLimit(100)
if err != nil {
fmt.Println("Create Worker Pool Failed")
}
//f()
for i := 0; i < 100; i++ {
j := i
f := func() {
fmt.Println(j)
}
wp.Queue(f)
}
time.Sleep(5 * time.Second)
}