Goroutine
case sendCh<- <-receiveCh: はアンチパターンぽい【Go】
· ☕ 1 分で読めます
Photo by Karolina Grabowska from Pexels Goでゴルーチンを使ってコードを書いてるときに、詰まったことがあったのでメモ 問題の症状 caseの中でチャネルの受信と送信を同時にしようとすると、 条件判定の最中にブロックしてしまうことがある 1 2 3 4 5 6 7 8 9 ~ for { select { case <-ctx.Done(): return case sendCh <- <-receiveCh: // something } } 具体的には、上記のコードでcontextをcanc

インプットを動的に増減させるFan-Inパターン【Goによる並行処理】
· ☕ 5 分で読めます
Photo by Miguel Á. Padriñán from Pexels Go言語による並行処理 この本でゴルーチンを使った並行処理のパターンをいろいろ読んで、面白いなーと思いながら勉強していて、実際にFan-Inのパターンを使って実装したい場面があったのだが 一度Fan-Inを作った後に、n:1のn側となるインプットのチャネルを任意のタイミング