複数のゴルーチンに対して、何かしらの処理が終了したことを伝えるのにチャネルのcloseが使えます。 これはruiさんの以下の記事にも書かれていることですが、ここでは閉じれたチャネルの挙動を見つつ、例を挙げて説明していきます。 Goでチャネルにブロードキャストするにはcloseを使う 閉じられたチャネルの挙動 閉じられたチャネルは、受信したり送信したりした場合、どのような挙動をするのでしょうか? 実際に送信や受信を行ってみて挙動を確かめてみましょう。 送信 閉じられたチャネルに対して送信してみましょう。 Go Playgroundで見る package main func main() { ch := make(chan struct{}) close(ch) ch <- struct{}{} }