前編の続きです。前編ではChan.Unagiには以下の欠点があることを解説しました。 読み出しを行うスレッドに対する非同期例外の扱いが面倒 データがすぐにGCされない 後編では、Chan.Unagiの欠点を克服したキューを作るやり方について解説します。 不要になったデータをGCできるようにする まずは簡単な方から解決していきましょう。 Chan.Unagiで読み出し終わったデータをMutableArrayから削除できないのは、Chan.Unagiがチャネル(書き込まれた値を複数のキューに書き込まれたかのように読み出す機能を持つ)であるためでした。 であるならば話は単純です。作りたいのはチャネルではなくキューなのでデータを削除すればよいのです。 具体的には、MutableArrayに入れるデータ型の定義に読み出し終わった状態を追加し、読み出し処理の終わりに、この値を書き込めば解決です。 この