1 work.go
package work
import ("sync"
)
type Worker interface { //定义接口,需实现Task()函数
Task()
}
type Pool struct {
work chan Worker //通道,发送worker
wg sync.WaitGroup
}
func New(maxGoroutines int) *Pool {
p := Pool {
work :make(chan Worker),
}
p.wg.Add(maxGoroutines)
for i := 0; i< maxGoroutines; i++ {
go func(){
for w := range p.work { //这种方式从一个chan中取东西&