fix blocking queue
@@ -10,15 +10,18 @@ public class BlockingQueueUsage {
int N_CONSUMERS = Runtime.getRuntime().availableProcessors();
int poisonPill = Integer.MAX_VALUE;
int poisonPillPerProducer = N_CONSUMERS / N_PRODUCERS;
-
+ int mod = N_CONSUMERS % N_PRODUCERS;
BlockingQueue<Integer> queue = new LinkedBlockingQueue<>(BOUND);
- for (int i = 0; i < N_PRODUCERS; i++) {
+ for (int i = 1; i < N_PRODUCERS; i++) {
new Thread(new NumbersProducer(queue, poisonPill, poisonPillPerProducer)).start();
}
for (int j = 0; j < N_CONSUMERS; j++) {
new Thread(new NumbersConsumer(queue, poisonPill)).start();
}
+
+ new Thread(new NumbersProducer(queue, poisonPill, poisonPillPerProducer+mod)).start();
+
}
}
\ No newline at end of file
