這篇文章主要介紹“GO并發(fā)控制庫Concurrency怎么使用”的相關(guān)知識,小編通過實(shí)際案例向大家展示操作過程,操作方法簡單快捷,實(shí)用性強(qiáng),希望這篇“GO并發(fā)控制庫Concurrency怎么使用”文章能幫助大家解決問題。

鐵東ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!
GOPROXY=https://goproxy.cn go get -v github.com/lxzan/concurrency@latest
并發(fā)協(xié)程數(shù)量限制
支持 contex.Contex
支持 panic recover, 返回包含錯(cuò)誤堆棧的 error
遞歸實(shí)現(xiàn)的任務(wù)調(diào)度, 不依賴 time.Ticker 和 channel
WorkerGroup 工作組, 添加一組任務(wù), 等待執(zhí)行完成, 可以很好的替代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
WorkerQueue 工作隊(duì)列, 可以不斷往里面添加任務(wù), 一旦有CPU資源空閑就去執(zhí)行。
package mainimport (
"fmt"
"github.com/lxzan/concurrency"
"time")func Add(args interface{}) error {
arr := args.([]int)
ans := 0
for _, item := range arr {
ans += item }
fmt.Printf("args=%v, ans=%d\n", args, ans)
return nil}func Mul(args interface{}) error {
arr := args.([]int)
ans := 1
for _, item := range arr {
ans *= item }
fmt.Printf("args=%v, ans=%d\n", args, ans)
return nil}func main() {
args1 := []int{1, 3}
args2 := []int{1, 3, 5}
w := concurrency.NewWorkerQueue()
w.AddJob(
concurrency.Job{Args: args1, Do: Add},
concurrency.Job{Args: args1, Do: Mul},
concurrency.Job{Args: args2, Do: Add},
concurrency.Job{Args: args2, Do: Mul},
)
w.StopAndWait(30*time.Second)}args=[1 3], ans=4args=[1 3 5], ans=15args=[1 3], ans=3args=[1 3 5], ans=9
關(guān)于“GO并發(fā)控制庫Concurrency怎么使用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點(diǎn)。
文章名稱:GO并發(fā)控制庫Concurrency怎么使用
本文地址:http://chinadenli.net/article6/jhjdog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站制作、響應(yīng)式網(wǎng)站、軟件開發(fā)、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)