[Go] バッファ付きchannelをクローズした場合の動き
タスクをchannelで共有する場合、一方は共有したchannelにタスクを投入する。他方はchannelに投入されたタスクを取り出して処理する。
プロセスを停止する際に、できればchannelに残ったタスクはすべて処理したい。一方で新しいタスクは投入したくない。このような場合は、channelをクローズするのが有効。channelの中のタスクが取り出せるのかを確認した。
動作確認時のコードはこちら。
channelをクローズしても、中にアイテムが存在している限りは、okに入るbool値がtrueになる。ok値を確認しながら処理を行えば、すべてのタスクの処理完了を待ってプロセスを停止できる。
※ちなみにこれはバッファ付きのchannelの場合の話。
この記事が気に入ったらサポートをしてみませんか?