-
ダイクストラが提起した
-
Producer
- 循環プロセス
- サイクルを回すたびに、Consumerによって処理されなければならない情報の一部(=アイテム)を生産する
- バッファにアイテムを追加する
- バッファがいっぱいのときは、しばらく待機
-
Consumer
- 循環プロセス
- サイクルを回すたびに、Producerが生産した情報の次の部分を処理することができる
- バッファからアイテムを取り出して、処理をする
- バッファが空のときは、しばらく待機
-
ProducerとConsumerは、バッファを介して接続されている
-
ProducerとConsumerがConcurrentに動作しているとき、どうやって競合状態を回避すればよいか? というのがProducer-consumer problem
- 解決策として、Semaphoreが使われる 参考