看板 Soft_Job 關於我們 聯絡資訊
部落格版: https://bit.ly/three-goroutine 教學影片: https://www.youtube.com/watch?v=TEfp-bTAr-c
程式範例: https://bit.ly/3aeD9KX 00:00 三種控制方式 00:56 什麼時候使用 WaitGroup 03:40 Channel 使用時機 06:30 使用 Context 解決無法預知的 Goroutine 數量 09:26 技術總結 (部落格中文介紹) 相信大家踏入 Go 語言的世界,肯定是被強大的 Concurrency 所吸引,Go 語言用最簡單 的關鍵字 go 就可以將任務丟到背景處理,但是怎麼有效率的控制 Concurrency,這是入 門 Go 語言必學的項目,本篇會介紹三種方式來帶大家認識 Concurrency,而這三種方式 分別對應到三個不同的名詞: WaitGroup, Channel, 及 ContextWaitGroup: 需要將單一個 Job 拆成多個子任務,等到全部完成後,才能進行下一步,這 時候用 WaitGroup 最適合了 Channel+select: Channel 只能用在比較單純的 Goroutine 狀況下,如果要管理多個 Goroutine,建議還是走 context 會比較適合 Context: 如果你想一次控制全部的 Goroutine,相信用 context 會是最適合不過的,這 也是現在 Go 用最兇的地方,當然 context 不只有這特性,詳細可以參考『用 10 分鐘 了解 Go 語言 context package 使用場景及介紹[1]』 [1]: https://bit.ly/what-is-context -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 3.0.67.238 (新加坡) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1597195950.A.447.html
joekaojoekao: 推 08/12 09:51
showken: 推推 08/12 09:58
BignoZe: 推 08/12 10:46
WaterLengend: 推 08/12 15:25
dces4212: push 08/12 16:27
garypan1990: 推 08/12 19:43
marc47: 推 08/12 23:57
uopsdod: 推 08/13 01:40
tkueeby: 感謝 08/13 12:58
somefatguy: 推 08/13 14:18
ltony1024: 推 08/14 20:49
marc47: 有時候應用理解一點都不難,畫一個簡單且實際的例子比講很 08/15 22:20
marc47: 多話更棒 08/15 22:20