import (
"github.com/sohaha/zlsgo/zpool"
)
func main(){
// 初始化池,支持同时 100 个处理
p := zpool.New(100)
// 回收资源
defer p.Close()
// 捕获协程池内产生的恐慌
p.PanicFunc(func(err error) {
// ...
})
// 模拟 1000 个处理
for i := 0; i < 1000; i++ {
_ = p.Do(func(){
// 耗时处理
})
}
}
// 如果当前没有空闲协程会直接堵塞
p.Do(func(){})
// 1. 初始化时直接设置池容量与最大容量
p := zpool.New(100,1000)
// 2. 手动调整协程池容量,最大值不能大于初始化时设置的最大容量
p.AdjustSize(1000)
// 暂停池
p.Pause()
// 继续执行
p.Continue()
// 关闭池
p.Close()