addゴルーチンはブロックされたままです。先に実行されるのはあくまでタイミング的なものであって、保証されているわけではありません。私達の思惑を裏切る結果になることがあるため、チャネルのブロックを当てにして実行制御を組むときは注意が必要です。プログラムの実行時間は端末のスペックや状況によって変動するため、これも良い方法とは言えません。チャネル型を定義できます。場合、仮引数の型として「送信専用」または「受信専用」なチャネル型を定義し、その関数内でだけ強制するために利用します。プログラム全体を通して「送信だけ」「受信だけ」しかできないチャネルにはほとんど存在意義がありません。作った専用チャネルを有効に活用している文献やコードは見つけられませんでした。特別な使い方があるよって方は教えて下さい。関数によって閉じることができます。書き込むと(仮にバッファが空いていても)パニックが発生します。クローズされたチャネルからデータを読み出すとブロックされずにチャネルのゼロ値が得られます。)を見ればわかります。気になるのは「チャネルのクローズを忘れるとメモリリークを引き起こすか」ということでしょう。結論から言うとチャネルはGCの対象なのでメモリリークの直接の原因には繋がりません。そのチャネルが原因でゴルーチンをゾンビ化させることはありません。select文はチャネルをまとめる糊だと言っています。select文は欠かせません。読み書き可能になったチャネルのcase文に対応する処理を実行します。総乗用のゴルーチンに投げて受け取るプログラムです。