エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
each を遅延評価しながら複数スレッドで並行処理 - Qiita
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
each を遅延評価しながら複数スレッドで並行処理 - Qiita
目的 to_a できないが each できるリストについて、複数スレッドで処理したい。 具体的なユースケースは... 目的 to_a できないが each できるリストについて、複数スレッドで処理したい。 具体的なユースケースは AWS::S3::ObjectCollection の処理で、これは each すると 1000 回ごとに AWS の API を呼び出す。to_a すると、いちどきに連続して API を呼び出し、巨大な配列をつくってしまうので避けたい。 だめだった方法 parallel gem : 内部で最初に to_a しているため、each は遅延処理されず、すべてのオブジェクトを入れる配列 (+結果を入れる配列) が必要になる。 Enumerator / Fiber : スレッドをまたいで使えない 解決方法 標準ライブラリ thread で追加される SizedQueue をつかう。これは固定サイズのキューで、複数スレッドから扱うことができ、また値の追加時にキューがいっぱいなら待ってくれ

