[Go] バッファ付きchannelをクローズした場合の動き

タスクをchannelで共有する場合、一方は共有したchannelにタスクを投入する。他方はchannelに投入されたタスクを取り出して処理する。

プロセスを停止する際に、できればchannelに残ったタスクはすべて処理したい。一方で新しいタスクは投入したくない。このような場合は、channelをクローズするのが有効。channelの中のタスクが取り出せるのかを確認した。

動作確認時のコードはこちら

channelをクローズしても、中にアイテムが存在している限りは、okに入るbool値がtrueになる。ok値を確認しながら処理を行えば、すべてのタスクの処理完了を待ってプロセスを停止できる。

※ちなみにこれはバッファ付きのchannelの場合の話。


この記事が気に入ったらサポートをしてみませんか?