- 締切済み
「複数の」生産者消費者問題 in Java
基本的に生産者消費者問題なんですが Aが物を作るとBに渡し、Bが物を作るとCに渡し、Cが物を作るとDに渡す、というように 複数の生産者/消費者のベルトコンベヤーでの流れ作業を想定しています。 で以下のように組んでみたんですが、 B自身が「消費した/してない」をB自身に知らせていないので Bは勝手に作り始めてしまいます。 public class Main { public static void main(String args[]) { ConveyerBelt stationAB = new ConveyerBelt(); ConveyerBelt stationBC = new ConveyerBelt(); ConveyerBelt stationCD = new ConveyerBelt(); Worker producerA = new Worker(stationAB); Widget consumerB = new Widget(stationAB); Worker producerB = new Worker(stationBC); Widget consumerC = new Widget(stationBC); Worker producerC = new Worker(stationCD); Widget consumerD = new Widget(stationCD); producerA.start(); consumerB.start(); producerB.start(); consumerC.start(); producerC.start(); consumerD.start(); } } ConveyerBelt()バッファーがABとBCとCDの三つというのは正しいと思うんですけど スレッドはAとBとCとDの四つだけ作ればいいんでしょうか? でもその場合はConveyerBelt class自体はどんな風にいじればいいのでしょうか? ちなみにConveyerBelt()バッファーを一つにすればみんな同期しますが 当然ながら流れ作業になりません。 分からないところがあれば補足しますので、どなたかご教授下さい。 どうかお願いします。m(__)m
- みんなの回答 (2)
- 専門家の回答
お礼
その定義の方法を尋ねたのですが…。 もうとっくに自己解決してしまいました。 ありがとうございました。