Multiprocessor_Programming

  • Bounded-buffer problemとも

  • ダイクストラが提起した

  • Producer

    • 循環プロセス
    • サイクルを回すたびに、Consumerによって処理されなければならない情報の一部(=アイテム)を生産する
      • バッファにアイテムを追加する
      • バッファがいっぱいのときは、しばらく待機
  • Consumer

    • 循環プロセス
    • サイクルを回すたびに、Producerが生産した情報の次の部分を処理することができる
      • バッファからアイテムを取り出して、処理をする
      • バッファが空のときは、しばらく待機
  • ProducerとConsumerは、バッファを介して接続されている

  • ProducerとConsumerがConcurrentに動作しているとき、どうやって競合状態を回避すればよいか? というのがProducer-consumer problem

    • 解決策として、Semaphoreが使われる 参考
  • https://en.wikipedia.org/wiki/Producer–consumer_problem