GOPROXY=https://goproxy.cn go get -v github.com/lxzan/concurrency@latest
contex.Contex
panic recover
, 返回包含错误堆栈的 error
time.Ticker
和 channel
WaitGroup
.package mainimport (
"fmt"
"github.com/lxzan/concurrency"
"sync/atomic")func main() {
sum := int64(0)
w := concurrency.NewWorkerGroup()
for i := int64(1); i <= 10; i++ {
w.AddJob(concurrency.Job{
Args: i,
Do: func(args interface{}) error {
fmt.Printf("%v ", args)
atomic.AddInt64(&sum, args.(int64))
return nil
},
})
}
w.StartAndWait()
fmt.Printf("sum=%d\n", sum)}
4 5 6 7 8 9 10 1 3 2 sum=55