1、场景描述
2、设计
- 定义task结构体
type task struct {
Func func()
}
- 定义chan task,并通过一定数量的goroutine处理
var wg sync.WaitGroup
channels:=make(chan task,100)
for i:=0; i<5;i++ {
wg.Add(1)
go func() {
defer wg.Done()
for channel:=range channels{
channel.Func()
}
}()
}
......
close(channels)
wg.Wait()
3、优化
如何实现动态伸缩?
如何实现超时处理?
未完待续......