#### 1. 介绍
* 支持预分配协程和用多少申请多少
* 分配的协程都有一个生命周期,生命周期到了会被自动回收
* 协程池最少有一个哨兵协程,最多有 maxWork + 1(哨兵)
* 协程池会自己释放, 不需要手动释放
#### 2. 使用
```
pushPool := lib.NewTaskPool("poolName", 10, lib.WithProGoWorker())
defer pushPool.Close()
everyTaskHandleSum := 500
l := 50000
pushIds := []string{xxx}
totalPage := math.Ceil(float64(l) / float64(everyTaskHandleSum))
for page := 1; page <= int(totalPage); page++ {
// 根据切片分页
startIndex, endIndex := lib.GetPapeSliceIndex(int32(page), int32(everyTaskHandleSum), l)
tmpArr := pushIds[startIndex:endIndex]
i.log.Infof("startIndex: %d, endIndex: %d, total: %d", startIndex, endIndex, l)
// 阻塞式
pushPool.Submit(func() {
i.PushBatchMsg(tmpArr, info)
})
}
```
#### 最后
* 欢迎大佬们指正, 希望大佬给 **star**, [toGit](https://gitee.com/xuesongtao/taskpool/tree/master)
这是一个分享于 的资源,其中的信息可能已经有所发展或是发生改变。
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码`
- 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传