WorkPoolの仕様

WorkPoolとMergerの機能は似ています。WorkPoolはリストからプロセスが仕事を非決定的な順序で取り出します。WorkPoolはプロセスがリストにセルを非決定的な順序で追加します。実際、両者の実装は入出力が異なるだけで、非常に似ています。

しかし、WorkPoolでは「仕事」となるセルと「出力先」となるセルをペアで取り出します。Mergerとの対象性を考えると、「仕事」となるセルだけを取り出す仕様があっても良いような気がしてきます。

このような実装についても検討しましたが、とりあえず現在では仕事と出力先をペアで扱う実装だけにしています。この理由は、「仕事」だけを取り出す場合の利用形態が考えにくいからです。

「出力先」が与えられなかった場合、出力は非決定的な順序で行われる事になります。このような場合はあまり想定できません。あえて言えばヒストグラムを求めるようなプログラムがありますが、この場合でも一度リストに出力してから、後で集計した方が見通しがよくなると思います。

というわけで、「仕事」セルだけを扱うWorkPoolは実装していません。並行処理を行う際に必要になるようでしたら、実装すると思いますが…