目的 to_a できないが each できるリストについて、複数スレッドで処理したい。 具体的なユースケースは AWS::S3::ObjectCollection の処理で、これは each すると 1000 回ごとに AWS の API を呼び出す。to_a すると、いちどきに連続して API を呼び出し、巨大な配列をつくってしまうので避けたい。 だめだった方法 parallel gem : 内部で最初に to_a しているため、each は遅延処理されず、すべてのオブジェクトを入れる配列 (+結果を入れる配列) が必要になる。 Enumerator / Fiber : スレッドをまたいで使えない 解決方法 標準ライブラリ thread で追加される SizedQueue をつかう。これは固定サイズのキューで、複数スレッドから扱うことができ、また値の追加時にキューがいっぱいなら待ってくれ

