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中取东西&

本文主要探讨了Golang中的并发模式,通过分析`work.go`和`main.go`两个文件的代码,展示了如何在Go语言中利用goroutines和channels实现高效的并发处理。`work.go`包含了工作逻辑,而`main.go`则是程序的入口,调用了并发任务。
最低0.47元/天 解锁文章
751

被折叠的 条评论
为什么被折叠?



