国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Golang - 基于golang channel實現的輕量級異步任務分發器示例代碼

基于golang channel實現的輕量級異步任務分發器示例代碼

2020-05-16 15:21honhon Golang

這篇文章主要給大家介紹了關于基于golang channel實現的輕量級異步任務分發器的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

前言

有時候我們為了更好的利用計算機資源,可以把一些耗時長的任務隊列化異步執行。舉個對應簡單的生活中例子就是大多數餐廳里面點菜都是先找地方做,看了菜單選好菜之后找服務員點菜,此時再等待菜做好送上來。這里餐廳廚房就是計算機的底層資源,菜就是待執行的任務,而服務員就是我們的go channel。

關于消息隊列有很多好用的框架,如nsq,nats,kafka等等。但有時我們只需要輕量級的異步任務工具,而不需要太過于"復雜"的框架相對于我們的需求來說。于是借鑒一些項目框架,做了一個小小的封裝。

項目地址: https://github.com/chenhg5/go...  (本地下載)

go-task的使用很簡單,只需要初始化一個任務處理器,然后往處理器里面添加任務,然后處理器就會異步地去執行了。

舉餐廳的例子,代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package main
 
import (
 "runtime"
 "fmt"
 "time"
 "github.com/chenhg5/go-task"
)
 
func main() {
 
 // init
 task.InitTaskReceiver(runtime.NumCPU())
 
 // 有十個人同時點菜
 for i := 0; i < 10; i++ {
  task.AddTask(task.NewTask(
   map[string]interface{}{
    "paramA" : "value",
   }, // 參數
   []task.FacFunc{ordering, cooking, deliverying}, // 任務列表
   -1), // -1代表任務不超時
  )
 }
 
 time.Sleep(time.Second * 50)
}
 
// 下單任務
func ordering(uuid string, param map[string]interface{}) (string, error) {
 fmt.Println("i am ordering")
 time.Sleep(time.Second * 1)
 return uuid, nil
}
 
// 做菜任務
func cooking(uuid string, param map[string]interface{}) (string, error) {
 fmt.Println("i am cooking")
 time.Sleep(time.Second * 1)
 return uuid, nil
}
 
// 配送任務
func deliverying(uuid string, param map[string]interface{}) (string, error) {
 fmt.Println("i am deliverying")
 time.Sleep(time.Second * 1)
 return uuid, nil
}

跑一遍,就會看到:

i am ordering
i am ordering
i am ordering
i am ordering
i am ordering
i am ordering
i am ordering
i am ordering
i am cooking
i am cooking
i am cooking
i am cooking
i am cooking
i am cooking
i am cooking
i am cooking
i am deliverying
i am deliverying
i am deliverying
i am deliverying
i am deliverying
i am deliverying
i am deliverying
i am deliverying
i am ordering
i am ordering
i am cooking
i am cooking
i am deliverying
i am deliverying

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

原文鏈接:https://studygolang.com/articles/13410

延伸 · 閱讀

精彩推薦
  • GolangGolang中Bit數組的實現方式

    Golang中Bit數組的實現方式

    這篇文章主要介紹了Golang中Bit數組的實現方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    天易獨尊11682021-06-09
  • Golanggo日志系統logrus顯示文件和行號的操作

    go日志系統logrus顯示文件和行號的操作

    這篇文章主要介紹了go日志系統logrus顯示文件和行號的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    SmallQinYan12302021-02-02
  • Golanggolang json.Marshal 特殊html字符被轉義的解決方法

    golang json.Marshal 特殊html字符被轉義的解決方法

    今天小編就為大家分享一篇golang json.Marshal 特殊html字符被轉義的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧 ...

    李浩的life12792020-05-27
  • Golanggolang的httpserver優雅重啟方法詳解

    golang的httpserver優雅重啟方法詳解

    這篇文章主要給大家介紹了關于golang的httpserver優雅重啟的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,...

    helight2992020-05-14
  • Golanggo語言制作端口掃描器

    go語言制作端口掃描器

    本文給大家分享的是使用go語言編寫的TCP端口掃描器,可以選擇IP范圍,掃描的端口,以及多線程,有需要的小伙伴可以參考下。 ...

    腳本之家3642020-04-25
  • Golanggolang 通過ssh代理連接mysql的操作

    golang 通過ssh代理連接mysql的操作

    這篇文章主要介紹了golang 通過ssh代理連接mysql的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    a165861639710342021-03-08
  • Golanggolang如何使用struct的tag屬性的詳細介紹

    golang如何使用struct的tag屬性的詳細介紹

    這篇文章主要介紹了golang如何使用struct的tag屬性的詳細介紹,從例子說起,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看...

    Go語言中文網11352020-05-21
  • GolangGolang通脈之數據類型詳情

    Golang通脈之數據類型詳情

    這篇文章主要介紹了Golang通脈之數據類型,在編程語言中標識符就是定義的具有某種意義的詞,比如變量名、常量名、函數名等等,Go語言中標識符允許由...

    4272021-11-24
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 欧美午夜精品一区二区三区电影 | 亚洲一区二区三区免费观看 | 伊人网视频 | 国产黄色成人 | 国产一区二区三区久久 | 中文字幕一区二区三区四区五区 | 91免费观看视频 | 精品久久久久久久久久久久久久 | 国产精品99在线观看 | 成人欧美一区二区三区视频xxx | 久久久久久av | 日韩欧美在线一区 | 男女爱爱免费视频 | 国产玖玖| 看特级毛片 | 男女涩涩 | 中文字幕网站 | www中文字幕| 在线视频成人 | 99re国产| av亚洲在线| 亚洲一区二区免费视频 | 日本a视频 | 亚洲精品日韩在线 | 香蕉成人啪国产精品视频综合网 | 亚洲一区在线免费观看 | 免费一级片 | 成人三级视频 | 久久久久久久国产精品 | 国产精品久久久久桃色tv | 成年人在线观看视频 | 久久99精品久久久 | 无码一区二区三区视频 | 国产综合亚洲精品一区二 | 91嫩草视频在线 | 欧美一级在线 | 欧美成人a∨高清免费观看 亚洲国产精品尤物yw在线观看 | 九九热在线视频观看这里只有精品 | 久久久久久久久国产 | 免费在线一区二区 | 一区在线视频 |