conc更好地Golang并发控制三方库
发布时间:阅读数:131
从介绍来看,conc简化了并发操作控制,目前这个需要进入到学习Todo(需要升级版本)
项目地址: https://github.com/sourcegraph/conc
方法1
func main() {
var wg conc.WaitGroup
defer wg.Wait()
startTheThing(&wg)
}
func startTheThing(wg *conc.WaitGroup) {
wg.Go(func() { ... })
}
方法2
func main() {
var wg conc.WaitGroup
wg.Go(doSomethingThatMightPanic)
// panics with a nice stacktrace
wg.Wait()
}
方法3
func main() {
var wg conc.WaitGroup
for i := 0; i < 10; i++ {
wg.Go(doSomething)
}
wg.Wait()
}
方法4
func process(stream chan int) {
p := pool.New().WithMaxGoroutines(10)
for elem := range stream {
elem := elem
p.Go(func() {
handle(elem)
})
}
p.Wait()
}
官方提供了几个例子,按着来就行