Boss-workerパターン と Producer-consumerパターン

並列処理でよくあるタスクを作成してタスクを消費するパターンは、Producer-consumer(生産者と消費者)と呼ばれがちなのですが、
実は、マルチプロセス環境とマルチスレッド環境でパターン名が異なります。

Producer-consumerはマルチスレッド環境で、Boss-worker はマルチプロセス環境を指します。

マルチプロセス環境なBoss-workerでは、WorkerがBossに対してタスクを要求してタスクを受け取る必要がありますが、
マルチスレッド環境なProducer-consumerでは、Consumer は共有キューを参照するだけでいいのです。

ということが http://amzn.to/2qG4oXk に書いていました。

ちなみにRubyのテスト並列実行ライブラリ( https://github.com/tmm1/test-queue ) は、マルチプロセスで実装されており、上記の定義に従うなら Boss-workerパターン となります。