iT邦幫忙

鐵人檔案

2023 iThome 鐵人賽
回列表
自我挑戰組

Concurrency in go 讀書心得 系列

希望透過這本書的閱讀與心得來加深對於golang concurrency的理解。

鐵人鍊成 | 共 30 篇文章 | 0 人訂閱 訂閱系列文 RSS系列文
DAY 11

11.For-Select-Loop

這是出現頻率非常高的一種模式,主要用於持續地從多個 Go 通道(channels)中接收數據,此結構組合了 for 循環和 select 語句,讓你可以在一個無...

2023-09-25 ‧ 由 konchok3po 分享
DAY 12

12.Preventing goroutine leaks

goroutines占用資源較少且易於創建。執行時將多個 goroutine復用到任意數量的作業系統執行緒,以便我們不必擔心抽象層級。但是他們會花費成本資源,並...

2023-09-26 ‧ 由 konchok3po 分享
DAY 13

13.Or-channel

有時你可能會發現自己考慮將一個或多個done通道合併到一個done通道中,該通道在任何組件通道關閉時關閉。編寫一個執行這種耦合度較高的select語句是可行的,...

2023-09-27 ‧ 由 konchok3po 分享
DAY 14

14.Error handling

在併發編程中,錯誤處理可能難以正確運行。有時候,我們花了很多時間思考我們的各種流程將如何共享信息和協調,卻忘記考慮如何優雅地處理錯誤。Go避開了流行的錯誤異常模...

2023-09-28 ‧ 由 konchok3po 分享
DAY 15

15.Pipeline

pipline(管道、流水線),是你可以用來在系統中形成抽象的另一種工具。特別是當你的程序需要處理streams(流)或batch(批次)處理數據時,它是一個非...

2023-09-29 ‧ 由 konchok3po 分享
DAY 16

16.Pipeline-2

來看兩個程式來比較interface跟特定型別的效能 func BenchmarkGeneric(b *testing.B) { repeat := func...

2023-09-30 ‧ 由 konchok3po 分享
DAY 17

17.Fan in, Fan out

建立管道後數據在你的系統中歡暢地流動,並在連接在一起的各個階段發生變化。有時候,管道中的各個階段可能在計算上特別耗費資源。當發生這種情況時,管道中的上遊階段可能...

2023-10-01 ‧ 由 konchok3po 分享
DAY 18

18.Or-done-channel

有時你會與來自系統不同部分的Channel(通道)交互。與pipeline(管道)不同的是,當你使用的代碼通過done通道取消操作時,你無法對通道的行為方式做出...

2023-10-02 ‧ 由 konchok3po 分享
DAY 19

19.Tee-channel

有時候你可能想分割來自通道的多個值,以便將它們發送到兩個獨立區域。想像一下:你可能想要在一個通道上接收一系列操作指令,將它們發送給執行者,同時記錄操作日志。與U...

2023-10-03 ‧ 由 konchok3po 分享
DAY 20

20.The bridge-channel

在某些情況下,你可能會發現自己想要使用一系列通道的值: <-chan <-chan interface{} 這與將某個通道的數據切片合併到一個通道...

2023-10-04 ‧ 由 konchok3po 分享