Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

QUESTION: Create the TestProdCons, ConsumerThread, ProducerThread, SynchQueue an

ID: 3918308 • Letter: Q

Question

QUESTION: Create the TestProdCons, ConsumerThread, ProducerThread, SynchQueue and IntNode classes given the following information.

/*** Can add a front/first index for tracking where to dequeue from. Only need to know the end if plan on shifting all the elements when dequeueing. If implementing use a circular queue both indices needed
Also can add extra methods, variables, etc..

Produce and Consume Structures Thread .. Java's Implementation ProduceThread ConsumerThread - index int - Sq SynchQueue - index int - 5q SynchQueue + ProduceThread(int ind, SynchQueue queue)Consumer Thread (int ind, SynchQueue queue +run) + run() SynchQueue size : int - front IntNode - backIntNode - done: boolean TestProdCons IntNode - data : int + main (args Strin - nextIntNode + SynchQueue) +IntNode (nint) + getSize) int + isFull) boolean + enqueue (datum int)boolean + dequeue)int + isDone) boolean + shutdown) + getData) int + getNext)IntNode + setNext nn IntNode)

Explanation / Answer

package threadProgram;

import java.util.LinkedList;

import java.util.Queue;

import java.util.Random;

// Defines a class for ProducerThread implements Runnable interface

class ProducerThread implements Runnable

{

// Declares a queue object

private final Queue sharedQueue;

private int maximumSize;

// Parameterized constructor to initialize queue and size

public ProducerThread(Queue sq, int max)

{

this.sharedQueue = sq;

this.maximumSize = max;

}// End of parameterized constructor

@Override

// Overrides run method

public void run()

{

// loop started

while(true)

{

// Synchronizes the shared queue

synchronized (sharedQueue)

{

// Loops till queue size is equals to maximum size

while(sharedQueue.size() == maximumSize)

{

// try block begins

try

{

System.out.println("Queue is full");

// Calls the wait method to stop producing

sharedQueue.wait();

}// End of try block

// Catch block to handle InterruptedException

catch(InterruptedException ie)

{

ie.printStackTrace();

}// End of catch block

}// End of inner while loop

  

// Random class object created

Random ran = new Random();

// Generates random number between 0 and 10

int number = ran.nextInt(10);

// Displays information

System.out.println("Producer " + Thread.currentThread().getId() + " added " + number + ", queue size " + sharedQueue.size());

// Adds the random number to queue

sharedQueue.add(number);

// Calls the notify method to resume

sharedQueue.notify();

}// End of synchronized method

}// End of outer for loop

}// End of run method

}// End of class

// Class ConsumerThread implements Runnable interface

class ConsumerThread implements Runnable

{

// Declares a queue object

private final Queue sharedQueue;

private int maximumSize;

  

// Parameterized constructor to initialize queue and size

public ConsumerThread(Queue sq, int max)

{

this.sharedQueue = sq;

this.maximumSize = max;

}// End of parameterized constructor

// Method to calculate and return factorial of a given number

int factorial(int no)

{

// Initializes factorial to one

int factorial = 1;

// Loops till number passed as parameter

for (int counter = 1; counter <= no; counter++)

// Calculates factorial

factorial = factorial * counter;

// Returns the factorial

return factorial;

}// End of method

  

@Override

// Overrides run method

public void run()

{

// loop started

while(true)

{

// Synchronizes the shared queue

synchronized (sharedQueue)

{

// Loops till queue is empty

while(sharedQueue.isEmpty())

{

// try block begins

try

{

System.out.println("Empty Queue.");

// Calls the wait method to stop consuming

sharedQueue.wait();

}// End of try block

  

// Catch block to handle InterruptedException

catch(InterruptedException ie)

{

ie.printStackTrace();

}// End of catch block

}// End of inner while loop

// Extracts the number from queue

int number = (int) sharedQueue.poll();

// Displays data

System.out.println("Consumer " + Thread.currentThread().getId() + " removed " + number + ", computed " + factorial(number));

// Calls the notify method to resume

sharedQueue.notify();

}// End of synchronized method

}// End of outer for loop

}// End of run method

}// End of class

// Driver class definition

public class ProducerConsumerTest

{

// main method definition

public static void main(String[] args) throws InterruptedException

{

final Queue sharedQ = new LinkedList < Integer >();

Thread consumerThread = new Thread(new ConsumerThread(sharedQ, 5), "CONSUMER");

Thread producerThread = new Thread(new ProducerThread(sharedQ, 5), "PRODUCER");

producerThread.start();

consumerThread.start();

}// End of main method

}// End of class

Sample Output:

Producer 14 added 1, queue size 0
Producer 14 added 3, queue size 1
Producer 14 added 1, queue size 2
Producer 14 added 2, queue size 3
Producer 14 added 9, queue size 4
Queue is full
Consumer 13 removed 1, computed 1
Consumer 13 removed 3, computed 6
Consumer 13 removed 1, computed 1
Consumer 13 removed 2, computed 2
Consumer 13 removed 9, computed 362880
Empty Queue.
Producer 14 added 5, queue size 0
Producer 14 added 6, queue size 1
Producer 14 added 4, queue size 2
Producer 14 added 3, queue size 3
Producer 14 added 8, queue size 4
Queue is full
Consumer 13 removed 5, computed 120
Consumer 13 removed 6, computed 720
Consumer 13 removed 4, computed 24
Consumer 13 removed 3, computed 6
Consumer 13 removed 8, computed 40320
Empty Queue.
Producer 14 added 9, queue size 0
Producer 14 added 5, queue size 1
Producer 14 added 7, queue size 2
Producer 14 added 6, queue size 3
Producer 14 added 6, queue size 4
Queue is full
Consumer 13 removed 9, computed 362880
Consumer 13 removed 5, computed 120
Consumer 13 removed 7, computed 5040
Consumer 13 removed 6, computed 720
Consumer 13 removed 6, computed 720
Empty Queue.
Producer 14 added 4, queue size 0
Producer 14 added 7, queue size 1
Producer 14 added 9, queue size 2
Producer 14 added 6, queue size 3
Producer 14 added 3, queue size 4
Queue is full
Consumer 13 removed 4, computed 24
Consumer 13 removed 7, computed 5040
Consumer 13 removed 9, computed 362880
Consumer 13 removed 6, computed 720
Consumer 13 removed 3, computed 6
Empty Queue.
Producer 14 added 4, queue size 0
Producer 14 added 2, queue size 1
Producer 14 added 8, queue size 2
Producer 14 added 6, queue size 3
Producer 14 added 1, queue size 4
Queue is full
Consumer 13 removed 4, computed 24
Consumer 13 removed 2, computed 2
Consumer 13 removed 8, computed 40320
Consumer 13 removed 6, computed 720
Consumer 13 removed 1, computed 1
Empty Queue.
Producer 14 added 8, queue size 0
Producer 14 added 4, queue size 1
Producer 14 added 7, queue size 2
Producer 14 added 0, queue size 3
Producer 14 added 1, queue size 4
Queue is full
Consumer 13 removed 8, computed 40320
Consumer 13 removed 4, computed 24
Consumer 13 removed 7, computed 5040
Consumer 13 removed 0, computed 1
Consumer 13 removed 1, computed 1
Empty Queue.
Producer 14 added 8, queue size 0
Producer 14 added 6, queue size 1
Producer 14 added 2, queue size 2
Producer 14 added 5, queue size 3
Producer 14 added 0, queue size 4
Queue is full
Consumer 13 removed 8, computed 40320
Consumer 13 removed 6, computed 720
Consumer 13 removed 2, computed 2
Consumer 13 removed 5, computed 120
Consumer 13 removed 0, computed 1
Empty Queue.
Producer 14 added 7, queue size 0
Producer 14 added 2, queue size 1
Producer 14 added 0, queue size 2
Producer 14 added 5, queue size 3
Producer 14 added 9, queue size 4
Queue is full
Consumer 13 removed 7, computed 5040
Consumer 13 removed 2, computed 2
Consumer 13 removed 0, computed 1
Consumer 13 removed 5, computed 120
Consumer 13 removed 9, computed 362880
Empty Queue.
Producer 14 added 5, queue size 0
Producer 14 added 7, queue size 1
Producer 14 added 1, queue size 2
Producer 14 added 8, queue size 3
Producer 14 added 5, queue size 4
Queue is full
Consumer 13 removed 5, computed 120
Consumer 13 removed 7, computed 5040
Consumer 13 removed 1, computed 1
Consumer 13 removed 8, computed 40320
Consumer 13 removed 5, computed 120
Empty Queue.
Producer 14 added 6, queue size 0
Producer 14 added 2, queue size 1
Producer 14 added 8, queue size 2
Producer 14 added 7, queue size 3
Producer 14 added 5, queue size 4
Queue is full
Consumer 13 removed 6, computed 720
Consumer 13 removed 2, computed 2
Consumer 13 removed 8, computed 40320
Consumer 13 removed 7, computed 5040
Consumer 13 removed 5, computed 120
Empty Queue.
Producer 14 added 4, queue size 0
Producer 14 added 2, queue size 1
Producer 14 added 7, queue size 2
Producer 14 added 3, queue size 3
Producer 14 added 6, queue size 4
Queue is full
Consumer 13 removed 4, computed 24
Consumer 13 removed 2, computed 2
Consumer 13 removed 7, computed 5040
Consumer 13 removed 3, computed 6
Consumer 13 removed 6, computed 720
Empty Queue.
Producer 14 added 0, queue size 0
Producer 14 added 2, queue size 1
Producer 14 added 0, queue size 2
Producer 14 added 5, queue size 3
Producer 14 added 1, queue size 4
Queue is full
Consumer 13 removed 0, computed 1
Consumer 13 removed 2, computed 2
Consumer 13 removed 0, computed 1
Consumer 13 removed 5, computed 120
Consumer 13 removed 1, computed 1
Empty Queue.
Producer 14 added 5, queue size 0
Producer 14 added 3, queue size 1
Producer 14 added 6, queue size 2
Producer 14 added 1, queue size 3
Producer 14 added 1, queue size 4
Queue is full
Consumer 13 removed 5, computed 120
Consumer 13 removed 3, computed 6
Consumer 13 removed 6, computed 720
Consumer 13 removed 1, computed 1
Consumer 13 removed 1, computed 1
Empty Queue.
Producer 14 added 8, queue size 0
Producer 14 added 7, queue size 1
Producer 14 added 1, queue size 2
Producer 14 added 0, queue size 3
Producer 14 added 7, queue size 4
Queue is full
Consumer 13 removed 8, computed 40320
Consumer 13 removed 7, computed 5040
Consumer 13 removed 1, computed 1
Consumer 13 removed 0, computed 1
Consumer 13 removed 7, computed 5040
Empty Queue.
Producer 14 added 5, queue size 0
Producer 14 added 4, queue size 1
Producer 14 added 8, queue size 2
Producer 14 added 7, queue size 3
Producer 14 added 7, queue size 4
Queue is full
Consumer 13 removed 5, computed 120
Consumer 13 removed 4, computed 24
Consumer 13 removed 8, computed 40320
Consumer 13 removed 7, computed 5040
Consumer 13 removed 7, computed 5040
Empty Queue.
Producer 14 added 1, queue size 0
Producer 14 added 7, queue size 1
Producer 14 added 7, queue size 2
Producer 14 added 3, queue size 3
Producer 14 added 0, queue size 4
Queue is full
Consumer 13 removed 1, computed 1
Consumer 13 removed 7, computed 5040
Consumer 13 removed 7, computed 5040
Consumer 13 removed 3, computed 6
Consumer 13 removed 0, computed 1
Empty Queue.
Producer 14 added 3, queue size 0
Producer 14 added 5, queue size 1
Producer 14 added 9, queue size 2
Producer 14 added 2, queue size 3
Producer 14 added 0, queue size 4
Queue is full
Consumer 13 removed 3, computed 6
Consumer 13 removed 5, computed 120
Consumer 13 removed 9, computed 362880
Consumer 13 removed 2, computed 2
Consumer 13 removed 0, computed 1
Empty Queue.
Producer 14 added 5, queue size 0
Producer 14 added 8, queue size 1
Producer 14 added 5, queue size 2
Producer 14 added 2, queue size 3
Producer 14 added 4, queue size 4
Queue is full
Consumer 13 removed 5, computed 120
Consumer 13 removed 8, computed 40320
Consumer 13 removed 5, computed 120
Consumer 13 removed 2, computed 2
Consumer 13 removed 4, computed 24
Empty Queue.
Producer 14 added 1, queue size 0
Producer 14 added 6, queue size 1
Producer 14 added 5, queue size 2
Producer 14 added 7, queue size 3
Producer 14 added 0, queue size 4
Queue is full
Consumer 13 removed 1, computed 1
Consumer 13 removed 6, computed 720
Consumer 13 removed 5, computed 120
Consumer 13 removed 7, computed 5040
Consumer 13 removed 0, computed 1
Empty Queue.
Producer 14 added 1, queue size 0
Producer 14 added 4, queue size 1
Producer 14 added 8, queue size 2
Producer 14 added 7, queue size 3
Producer 14 added 9, queue size 4
Queue is full
Consumer 13 removed 1, computed 1
Consumer 13 removed 4, computed 24
Consumer 13 removed 8, computed 40320
Consumer 13 removed 7, computed 5040
Consumer 13 removed 9, computed 362880
Empty Queue.
Producer 14 added 6, queue size 0
Producer 14 added 0, queue size 1
Producer 14 added 4, queue size 2
Producer 14 added 0, queue size 3
Producer 14 added 8, queue size 4
Queue is full
Consumer 13 removed 6, computed 720
Consumer 13 removed 0, computed 1
Consumer 13 removed 4, computed 24
Consumer 13 removed 0, computed 1
Consumer 13 removed 8, computed 40320
Empty Queue.
Producer 14 added 1, queue size 0
Producer 14 added 8, queue size 1
Producer 14 added 3, queue size 2
Producer 14 added 3, queue size 3
Producer 14 added 8, queue size 4
Queue is full
Consumer 13 removed 1, computed 1
Consumer 13 removed 8, computed 40320
Consumer 13 removed 3, computed 6
Consumer 13 removed 3, computed 6
Consumer 13 removed 8, computed 40320
Empty Queue.
Producer 14 added 9, queue size 0
Producer 14 added 7, queue size 1
Producer 14 added 9, queue size 2
Producer 14 added 0, queue size 3
Producer 14 added 5, queue size 4
Queue is full
Consumer 13 removed 9, computed 362880
Consumer 13 removed 7, computed 5040
Consumer 13 removed 9, computed 362880
Consumer 13 removed 0, computed 1
Consumer 13 removed 5, computed 120
Empty Queue.
Producer 14 added 7, queue size 0
Producer 14 added 2, queue size 1
Producer 14 added 4, queue size 2
Producer 14 added 9, queue size 3
Producer 14 added 2, queue size 4
Queue is full
Consumer 13 removed 7, computed 5040
Consumer 13 removed 2, computed 2
Consumer 13 removed 4, computed 24
Consumer 13 removed 9, computed 362880
Consumer 13 removed 2, computed 2
Empty Queue.
Producer 14 added 1, queue size 0
Producer 14 added 7, queue size 1
Producer 14 added 4, queue size 2
Producer 14 added 9, queue size 3
Producer 14 added 3, queue size 4
Queue is full
Consumer 13 removed 1, computed 1
Consumer 13 removed 7, computed 5040
Consumer 13 removed 4, computed 24
Consumer 13 removed 9, computed 362880
Consumer 13 removed 3, computed 6
Empty Queue.
Producer 14 added 1, queue size 0
Producer 14 added 8, queue size 1
Producer 14 added 7, queue size 2
Producer 14 added 0, queue size 3
Producer 14 added 3, queue size 4
Queue is full
Consumer 13 removed 1, computed 1
Consumer 13 removed 8, computed 40320
Consumer 13 removed 7, computed 5040
Consumer 13 removed 0, computed 1
Consumer 13 removed 3, computed 6
Empty Queue.
Producer 14 added 9, queue size 0
Producer 14 added 6, queue size 1
Producer 14 added 6, queue size 2
Producer 14 added 4, queue size 3
Producer 14 added 4, queue size 4
Queue is full
Consumer 13 removed 9, computed 362880
Consumer 13 removed 6, computed 720
Consumer 13 removed 6, computed 720
Consumer 13 removed 4, computed 24
Consumer 13 removed 4, computed 24
Empty Queue.
Producer 14 added 3, queue size 0
Producer 14 added 8, queue size 1
Producer 14 added 8, queue size 2
Producer 14 added 9, queue size 3
Producer 14 added 0, queue size 4
Queue is full
Consumer 13 removed 3, computed 6
Consumer 13 removed 8, computed 40320
Consumer 13 removed 8, computed 40320
Consumer 13 removed 9, computed 362880
Consumer 13 removed 0, computed 1
Empty Queue.
Producer 14 added 1, queue size 0
Producer 14 added 8, queue size 1
Producer 14 added 2, queue size 2
Producer 14 added 2, queue size 3
Producer 14 added 7, queue size 4
Queue is full
Consumer 13 removed 1, computed 1
Consumer 13 removed 8, computed 40320
Consumer 13 removed 2, computed 2
Consumer 13 removed 2, computed 2
Consumer 13 removed 7, computed 5040
Empty Queue.
Producer 14 added 0, queue size 0
Producer 14 added 8, queue size 1
Producer 14 added 4, queue size 2
Producer 14 added 4, queue size 3
Producer 14 added 0, queue size 4
Queue is full
Consumer 13 removed 0, computed 1
Consumer 13 removed 8, computed 40320
Consumer 13 removed 4, computed 24
Consumer 13 removed 4, computed 24
Consumer 13 removed 0, computed 1
Empty Queue.
Producer 14 added 3, queue size 0
Producer 14 added 8, queue size 1
Producer 14 added 6, queue size 2
Producer 14 added 1, queue size 3
Producer 14 added 2, queue size 4
Queue is full
Consumer 13 removed 3, computed 6
Consumer 13 removed 8, computed 40320
Consumer 13 removed 6, computed 720
Consumer 13 removed 1, computed 1
Consumer 13 removed 2, computed 2
Empty Queue.
Producer 14 added 2, queue size 0
Producer 14 added 6, queue size 1
Producer 14 added 0, queue size 2
Producer 14 added 8, queue size 3
Producer 14 added 9, queue size 4
Queue is full
Consumer 13 removed 2, computed 2
Consumer 13 removed 6, computed 720
Consumer 13 removed 0, computed 1
Consumer 13 removed 8, computed 40320
Consumer 13 removed 9, computed 362880
Empty Queue.
Producer 14 added 4, queue size 0
Producer 14 added 8, queue size 1
Producer 14 added 8, queue size 2
Producer 14 added 8, queue size 3
Producer 14 added 0, queue size 4
Queue is full
Consumer 13 removed 4, computed 24
Consumer 13 removed 8, computed 40320
Consumer 13 removed 8, computed 40320
Consumer 13 removed 8, computed 40320
Consumer 13 removed 0, computed 1
Empty Queue.
Producer 14 added 4, queue size 0
Producer 14 added 3, queue size 1
Producer 14 added 8, queue size 2
Producer 14 added 3, queue size 3
Producer 14 added 6, queue size 4
Queue is full
Consumer 13 removed 4, computed 24
Consumer 13 removed 3, computed 6
Consumer 13 removed 8, computed 40320
Consumer 13 removed 3, computed 6
Consumer 13 removed 6, computed 720
Empty Queue.
Producer 14 added 4, queue size 0
Producer 14 added 1, queue size 1
Producer 14 added 3, queue size 2
Producer 14 added 9, queue size 3
Producer 14 added 3, queue size 4
Queue is full
Consumer 13 removed 4, computed 24
Consumer 13 removed 1, computed 1
Consumer 13 removed 3, computed 6
Consumer 13 removed 9, computed 362880
Consumer 13 removed 3, computed 6
Empty Queue.
Producer 14 added 2, queue size 0
Producer 14 added 1, queue size 1
Producer 14 added 4, queue size 2
Producer 14 added 3, queue size 3
Producer 14 added 9, queue size 4
Queue is full
Consumer 13 removed 2, computed 2
Consumer 13 removed 1, computed 1
Consumer 13 removed 4, computed 24
Consumer 13 removed 3, computed 6
Consumer 13 removed 9, computed 362880
Empty Queue.
Producer 14 added 6, queue size 0
Producer 14 added 0, queue size 1
Producer 14 added 0, queue size 2
Producer 14 added 3, queue size 3
Producer 14 added 9, queue size 4
Queue is full
Consumer 13 removed 6, computed 720
Consumer 13 removed 0, computed 1
Consumer 13 removed 0, computed 1
Consumer 13 removed 3, computed 6
Consumer 13 removed 9, computed 362880
Empty Queue.
Producer 14 added 3, queue size 0
Producer 14 added 7, queue size 1
Producer 14 added 4, queue size 2
Producer 14 added 9, queue size 3
Producer 14 added 9, queue size 4
Queue is full
Consumer 13 removed 3, computed 6
Consumer 13 removed 7, computed 5040
Consumer 13 removed 4, computed 24
Consumer 13 removed 9, computed 362880
Consumer 13 removed 9, computed 362880
Empty Queue.
Producer 14 added 9, queue size 0
Producer 14 added 1, queue size 1
Producer 14 added 3, queue size 2
Producer 14 added 9, queue size 3
Producer 14 added 7, queue size 4
Queue is full
Consumer 13 removed 9, computed 362880
Consumer 13 removed 1, computed 1
Consumer 13 removed 3, computed 6
Consumer 13 removed 9, computed 362880
Consumer 13 removed 7, computed 5040
Empty Queue.
Producer 14 added 7, queue size 0
Producer 14 added 7, queue size 1
Producer 14 added 0, queue size 2
Producer 14 added 5, queue size 3
Producer 14 added 9, queue size 4
Queue is full
Consumer 13 removed 7, computed 5040
Consumer 13 removed 7, computed 5040
Consumer 13 removed 0, computed 1
Consumer 13 removed 5, computed 120
Consumer 13 removed 9, computed 362880
Empty Queue.
Producer 14 added 0, queue size 0
Producer 14 added 4, queue size 1
Producer 14 added 6, queue size 2
Producer 14 added 1, queue size 3
Producer 14 added 7, queue size 4
Queue is full
Consumer 13 removed 0, computed 1
Consumer 13 removed 4, computed 24
Consumer 13 removed 6, computed 720
Consumer 13 removed 1, computed 1
Consumer 13 removed 7, computed 5040
Empty Queue.
Producer 14 added 8, queue size 0
Producer 14 added 0, queue size 1
Producer 14 added 0, queue size 2
Producer 14 added 1, queue size 3
Producer 14 added 3, queue size 4
Queue is full
Consumer 13 removed 8, computed 40320
Consumer 13 removed 0, computed 1
Consumer 13 removed 0, computed 1
Consumer 13 removed 1, computed 1
Consumer 13 removed 3, computed 6
Empty Queue.
Producer 14 added 1, queue size 0
Producer 14 added 4, queue size 1
Producer 14 added 8, queue size 2
Producer 14 added 1, queue size 3
Producer 14 added 7, queue size 4
Queue is full
Consumer 13 removed 1, computed 1
Consumer 13 removed 4, computed 24
Consumer 13 removed 8, computed 40320
Consumer 13 removed 1, computed 1
Consumer 13 removed 7, computed 5040
Empty Queue.
Producer 14 added 9, queue size 0
Producer 14 added 3, queue size 1
Producer 14 added 6, queue size 2
Producer 14 added 9, queue size 3
Producer 14 added 2, queue size 4
Queue is full
Consumer 13 removed 9, computed 362880
Consumer 13 removed 3, computed 6
Consumer 13 removed 6, computed 720
Consumer 13 removed 9, computed 362880
Consumer 13 removed 2, computed 2
Empty Queue.
Producer 14 added 3, queue size 0
Producer 14 added 9, queue size 1
Producer 14 added 5, queue size 2
Producer 14 added 2, queue size 3
Producer 14 added 5, queue size 4
Queue is full
Consumer 13 removed 3, computed 6
Consumer 13 removed 9, computed 362880
Consumer 13 removed 5, computed 120
Consumer 13 removed 2, computed 2
Consumer 13 removed 5, computed 120
Empty Queue.
Producer 14 added 7, queue size 0
Producer 14 added 7, queue size 1
Producer 14 added 2, queue size 2
Producer 14 added 4, queue size 3
Producer 14 added 1, queue size 4
Queue is full
Consumer 13 removed 7, computed 5040
Consumer 13 removed 7, computed 5040
Consumer 13 removed 2, computed 2
Consumer 13 removed 4, computed 24
Consumer 13 removed 1, computed 1
Empty Queue.
Producer 14 added 8, queue size 0
Producer 14 added 5, queue size 1
Producer 14 added 8, queue size 2
Producer 14 added 9, queue size 3
Producer 14 added 2, queue size 4
Queue is full
Consumer 13 removed 8, computed 40320
Consumer 13 removed 5, computed 120
Consumer 13 removed 8, computed 40320
Producer 14 added 3, queue size 2
Producer 14 added 1, queue size 3
Producer 14 added 2, queue size 4
Queue is full
Consumer 13 removed 9, computed 362880
Consumer 13 removed 2, computed 2
Consumer 13 removed 3, computed 6
Consumer 13 removed 1, computed 1
Consumer 13 removed 2, computed 2
Empty Queue.
Producer 14 added 7, queue size 0
Producer 14 added 6, queue size 1
Producer 14 added 7, queue size 2
Producer 14 added 5, queue size 3
Producer 14 added 6, queue size 4
Queue is full
Consumer 13 removed 7, computed 5040
Consumer 13 removed 6, computed 720
Consumer 13 removed 7, computed 5040
Consumer 13 removed 5, computed 120
Consumer 13 removed 6, computed 720
Empty Queue.
Producer 14 added 6, queue size 0
Producer 14 added 8, queue size 1
Producer 14 added 1, queue size 2
Producer 14 added 4, queue size 3
Producer 14 added 8, queue size 4
Queue is full
Consumer 13 removed 6, computed 720
Consumer 13 removed 8, computed 40320
Consumer 13 removed 1, computed 1
Consumer 13 removed 4, computed 24
Consumer 13 removed 8, computed 40320
Empty Queue.
Producer 14 added 7, queue size 0
Producer 14 added 4, queue size 1
Producer 14 added 0, queue size 2
Producer 14 added 3, queue size 3
Producer 14 added 7, queue size 4
Queue is full
Consumer 13 removed 7, computed 5040
Consumer 13 removed 4, computed 24
Consumer 13 removed 0, computed 1
Consumer 13 removed 3, computed 6
Consumer 13 removed 7, computed 5040
Empty Queue.
Producer 14 added 0, queue size 0
Producer 14 added 2, queue size 1
Producer 14 added 4, queue size 2
Producer 14 added 6, queue size 3
Producer 14 added 1, queue size 4
Queue is full
Consumer 13 removed 0, computed 1
Consumer 13 removed 2, computed 2
Consumer 13 removed 4, computed 24
Consumer 13 removed 6, computed 720
Consumer 13 removed 1, computed 1
Empty Queue.
Producer 14 added 6, queue size 0
Producer 14 added 7, queue size 1
Producer 14 added 0, queue size 2
Producer 14 added 2, queue size 3
Producer 14 added 5, queue size 4
Queue is full
Consumer 13 removed 6, computed 720
Consumer 13 removed 7, computed 5040
Consumer 13 removed 0, computed 1
Consumer 13 removed 2, computed 2
Consumer 13 removed 5, computed 120
Empty Queue.
Producer 14 added 6, queue size 0
Producer 14 added 4, queue size 1
Producer 14 added 8, queue size 2
Producer 14 added 7, queue size 3
Producer 14 added 3, queue size 4
Queue is full
Consumer 13 removed 6, computed 720
Consumer 13 removed 4, computed 24
Consumer 13 removed 8, computed 40320
Consumer 13 removed 7, computed 5040
Consumer 13 removed 3, computed 6
Empty Queue.
Producer 14 added 4, queue size 0
Producer 14 added 3, queue size 1
Producer 14 added 3, queue size 2
Producer 14 added 9, queue size 3
Producer 14 added 4, queue size 4
Queue is full
Consumer 13 removed 4, computed 24
Consumer 13 removed 3, computed 6
Consumer 13 removed 3, computed 6
Consumer 13 removed 9, computed 362880
Consumer 13 removed 4, computed 24
Empty Queue.
Producer 14 added 5, queue size 0
Producer 14 added 7, queue size 1
Producer 14 added 5, queue size 2
Producer 14 added 5, queue size 3
Producer 14 added 0, queue size 4
Queue is full
Consumer 13 removed 5, computed 120
Consumer 13 removed 7, computed 5040
Consumer 13 removed 5, computed 120
Consumer 13 removed 5, computed 120
Consumer 13 removed 0, computed 1
Empty Queue.
Producer 14 added 3, queue size 0
Producer 14 added 2, queue size 1
Producer 14 added 4, queue size 2
Producer 14 added 1, queue size 3
Producer 14 added 7, queue size 4
Queue is full
Consumer 13 removed 3, computed 6
Consumer 13 removed 2, computed 2
Consumer 13 removed 4, computed 24
Consumer 13 removed 1, computed 1
Consumer 13 removed 7, computed 5040
Empty Queue.
Producer 14 added 7, queue size 0
Producer 14 added 7, queue size 1
Producer 14 added 5, queue size 2
Producer 14 added 7, queue size 3
Producer 14 added 8, queue size 4
Queue is full
Consumer 13 removed 7, computed 5040
Consumer 13 removed 7, computed 5040
Consumer 13 removed 5, computed 120
Consumer 13 removed 7, computed 5040
Consumer 13 removed 8, computed 40320
Empty Queue.
Producer 14 added 5, queue size 0
Producer 14 added 4, queue size 1
Producer 14 added 7, queue size 2
Producer 14 added 7, queue size 3
Producer 14 added 6, queue size 4
Queue is full
Consumer 13 removed 5, computed 120
Consumer 13 removed 4, computed 24
Consumer 13 removed 7, computed 5040
Consumer 13 removed 7, computed 5040
Consumer 13 removed 6, computed 720
Empty Queue.
Producer 14 added 9, queue size 0
Producer 14 added 7, queue size 1
Producer 14 added 7, queue size 2
Producer 14 added 4, queue size 3
Producer 14 added 2, queue size 4
Queue is full
Consumer 13 removed 9, computed 362880
Consumer 13 removed 7, computed 5040
Consumer 13 removed 7, computed 5040
Consumer 13 removed 4, computed 24
Consumer 13 removed 2, computed 2
Empty Queue.
Producer 14 added 8, queue size 0
Producer 14 added 2, queue size 1
Producer 14 added 8, queue size 2
Producer 14 added 2, queue size 3
Producer 14 added 9, queue size 4
Queue is full
Consumer 13 removed 8, computed 40320
Consumer 13 removed 2, computed 2
Consumer 13 removed 8, computed 40320
Consumer 13 removed 2, computed 2
Consumer 13 removed 9, computed 362880
Empty Queue.
Producer 14 added 4, queue size 0
Producer 14 added 1, queue size 1
Producer 14 added 2, queue size 2
Producer 14 added 0, queue size 3
Producer 14 added 2, queue size 4
Queue is full
Consumer 13 removed 4, computed 24
Consumer 13 removed 1, computed 1
Consumer 13 removed 2, computed 2
Consumer 13 removed 0, computed 1
Consumer 13 removed 2, computed 2
Empty Queue.
Producer 14 added 5, queue size 0
Producer 14 added 3, queue size 1
Producer 14 added 2, queue size 2
Producer 14 added 4, queue size 3
Producer 14 added 5, queue size 4
Queue is full
Consumer 13 removed 5, computed 120
Consumer 13 removed 3, computed 6
Consumer 13 removed 2, computed 2
Consumer 13 removed 4, computed 24
Consumer 13 removed 5, computed 120
Empty Queue.
Producer 14 added 4, queue size 0
Producer 14 added 8, queue size 1
Producer 14 added 1, queue size 2
Producer 14 added 6, queue size 3
Producer 14 added 6, queue size 4
Queue is full
Consumer 13 removed 4, computed 24
Consumer 13 removed 8, computed 40320
Consumer 13 removed 1, computed 1
Consumer 13 removed 6, computed 720
Consumer 13 removed 6, computed 720
Empty Queue.
Producer 14 added 8, queue size 0
Producer 14 added 7, queue size 1
Producer 14 added 8, queue size 2
Producer 14 added 9, queue size 3
Producer 14 added 7, queue size 4
Queue is full
Consumer 13 removed 8, computed 40320
Consumer 13 removed 7, computed 5040
Consumer 13 removed 8, computed 40320
Consumer 13 removed 9, computed 362880
Consumer 13 removed 7, computed 5040
Empty Queue.
Producer 14 added 2, queue size 0
Producer 14 added 7, queue size 1
Producer 14 added 8, queue size 2
Producer 14 added 4, queue size 3
Producer 14 added 3, queue size 4
Queue is full
Consumer 13 removed 2, computed 2
Consumer 13 removed 7, computed 5040
Consumer 13 removed 8, computed 40320
Consumer 13 removed 4, computed 24
Consumer 13 removed 3, computed 6
Empty Queue.
Producer 14 added 5, queue size 0
Producer 14 added 6, queue size 1
Producer 14 added 4, queue size 2
Producer 14 added 3, queue size 3
Producer 14 added 0, queue size 4
Queue is full
Consumer 13 removed 5, computed 120
Consumer 13 removed 6, computed 720
Consumer 13 removed 4, computed 24
Consumer 13 removed 3, computed 6
Consumer 13 removed 0, computed 1
Empty Queue.
Producer 14 added 7, queue size 0
Producer 14 added 4, queue size 1
Producer 14 added 1, queue size 2
Producer 14 added 6, queue size 3
Producer 14 added 3, queue size 4
Queue is full
Consumer 13 removed 7, computed 5040
Consumer 13 removed 4, computed 24
Consumer 13 removed 1, computed 1
Consumer 13 removed 6, computed 720
Consumer 13 removed 3, computed 6
Empty Queue.
Producer 14 added 7, queue size 0
Producer 14 added 2, queue size 1
Producer 14 added 1, queue size 2
Producer 14 added 3, queue size 3
Producer 14 added 9, queue size 4
Queue is full
Consumer 13 removed 7, computed 5040
Consumer 13 removed 2, computed 2
Consumer 13 removed 1, computed 1
Consumer 13 removed 3, computed 6
Consumer 13 removed 9, computed 362880
Empty Queue.
Producer 14 added 6, queue size 0
Producer 14 added 1, queue size 1
Producer 14 added 6, queue size 2
Producer 14 added 9, queue size 3
Producer 14 added 9, queue size 4
Queue is full
Consumer 13 removed 6, computed 720
Consumer 13 removed 1, computed 1
Consumer 13 removed 6, computed 720
Consumer 13 removed 9, computed 362880
Consumer 13 removed 9, computed 362880
Empty Queue.
Producer 14 added 8, queue size 0
Producer 14 added 6, queue size 1
Producer 14 added 9, queue size 2
Producer 14 added 8, queue size 3
Producer 14 added 9, queue size 4
Queue is full
Consumer 13 removed 8, computed 40320
Consumer 13 removed 6, computed 720
Consumer 13 removed 9, computed 362880
Consumer 13 removed 8, computed 40320
Consumer 13 removed 9, computed 362880
Empty Queue.
Producer 14 added 1, queue size 0
Producer 14 added 2, queue size 1
Producer 14 added 5, queue size 2
Producer 14 added 5, queue size 3
Producer 14 added 9, queue size 4
Queue is full
Consumer 13 removed 1, computed 1
Consumer 13 removed 2, computed 2
Consumer 13 removed 5, computed 120
Consumer 13 removed 5, computed 120
Consumer 13 removed 9, computed 362880
Empty Queue.
Producer 14 added 6, queue size 0
Producer 14 added 1, queue size 1
Producer 14 added 8, queue size 2
Producer 14 added 7, queue size 3
Producer 14 added 2, queue size 4
Queue is full
Consumer 13 removed 6, computed 720
Consumer 13 removed 1, computed 1
Consumer 13 removed 8, computed 40320
Consumer 13 removed 7, computed 5040
Consumer 13 removed 2, computed 2
Empty Queue.
Producer 14 added 9, queue size 0
Producer 14 added 2, queue size 1
Producer 14 added 3, queue size 2
Producer 14 added 8, queue size 3
Producer 14 added 4, queue size 4
Queue is full
Consumer 13 removed 9, computed 362880
Consumer 13 removed 2, computed 2
Consumer 13 removed 3, computed 6
Consumer 13 removed 8, computed 40320
Consumer 13 removed 4, computed 24
Empty Queue.
Producer 14 added 8, queue size 0
Producer 14 added 0, queue size 1
Producer 14 added 7, queue size 2
Producer 14 added 7, queue size 3
Producer 14 added 5, queue size 4
Queue is full
Consumer 13 removed 8, computed 40320
Consumer 13 removed 0, computed 1
Consumer 13 removed 7, computed 5040
Consumer 13 removed 7, computed 5040
Consumer 13 removed 5, computed 120
Empty Queue.
Producer 14 added 4, queue size 0
Producer 14 added 8, queue size 1
Producer 14 added 8, queue size 2
Producer 14 added 4, queue size 3
Producer 14 added 0, queue size 4
Queue is full
Consumer 13 removed 4, computed 24
Consumer 13 removed 8, computed 40320
Consumer 13 removed 8, computed 40320
Consumer 13 removed 4, computed 24
Consumer 13 removed 0, computed 1
Empty Queue.
Producer 14 added 7, queue size 0
Producer 14 added 1, queue size 1
Producer 14 added 5, queue size 2
Producer 14 added 6, queue size 3
Producer 14 added 9, queue size 4
Queue is full
Consumer 13 removed 7, computed 5040
Consumer 13 removed 1, computed 1
Consumer 13 removed 5, computed 120
Consumer 13 removed 6, computed 720
Consumer 13 removed 9, computed 362880
Empty Queue.
Producer 14 added 1, queue size 0
Producer 14 added 4, queue size 1
Producer 14 added 7, queue size 2
Producer 14 added 1, queue size 3
Producer 14 added 6, queue size 4
Queue is full
Consumer 13 removed 1, computed 1
Consumer 13 removed 4, computed 24
Consumer 13 removed 7, computed 5040
Consumer 13 removed 1, computed 1
Consumer 13 removed 6, computed 720
Empty Queue.
Producer 14 added 7, queue size 0
Producer 14 added 9, queue size 1
Producer 14 added 9, queue size 2
Producer 14 added 6, queue size 3
Producer 14 added 9, queue size 4
Queue is full
Consumer 13 removed 7, computed 5040
Consumer 13 removed 9, computed 362880
Consumer 13 removed 9, computed 362880
Consumer 13 removed 6, computed 720
Consumer 13 removed 9, computed 362880
Empty Queue.
Producer 14 added 8, queue size 0
Producer 14 added 0, queue size 1
Producer 14 added 5, queue size 2
Producer 14 added 3, queue size 3
Producer 14 added 9, queue size 4
Queue is full
Consumer 13 removed 8, computed 40320
Consumer 13 removed 0, computed 1
Consumer 13 removed 5, computed 120
Consumer 13 removed 3, computed 6
Consumer 13 removed 9, computed 362880
Empty Queue.
Producer 14 added 3, queue size 0
Producer 14 added 8, queue size 1
Producer 14 added 2, queue size 2
Producer 14 added 5, queue size 3
Producer 14 added 2, queue size 4
Queue is full
Consumer 13 removed 3, computed 6
Consumer 13 removed 8, computed 40320
Consumer 13 removed 2, computed 2
Consumer 13 removed 5, computed 120
Consumer 13 removed 2, computed 2
Empty Queue.
Producer 14 added 4, queue size 0
Producer 14 added 8, queue size 1
Producer 14 added 0, queue size 2
Producer 14 added 2, queue size 3
Producer 14 added 8, queue size 4
Queue is full
Consumer 13 removed 4, computed 24
Consumer 13 removed 8, computed 40320
Consumer 13 removed 0, computed 1
Consumer 13 removed 2, computed 2
Consumer 13 removed 8, computed 40320
Empty Queue.
Producer 14 added 7, queue size 0
Producer 14 added 8, queue size 1
Producer 14 added 8, queue size 2
Producer 14 added 2, queue size 3
Producer 14 added 9, queue size 4
Queue is full
Consumer 13 removed 7, computed 5040
Consumer 13 removed 8, computed 40320
Consumer 13 removed 8, computed 40320
Consumer 13 removed 2, computed 2
Consumer 13 removed 9, computed 362880
Empty Queue.
Producer 14 added 6, queue size 0
Producer 14 added 6, queue size 1
Producer 14 added 3, queue size 2
Producer 14 added 1, queue size 3
Producer 14 added 9, queue size 4
Queue is full
Consumer 13 removed 6, computed 720
Consumer 13 removed 6, computed 720
Consumer 13 removed 3, computed 6
Consumer 13 removed 1, computed 1
Consumer 13 removed 9, computed 362880
Empty Queue.
Producer 14 added 4, queue size 0
Producer 14 added 0, queue size 1
Producer 14 added 7, queue size 2
Producer 14 added 9, queue size 3
Producer 14 added 7, queue size 4
Queue is full
Consumer 13 removed 4, computed 24
Consumer 13 removed 0, computed 1
Consumer 13 removed 7, computed 5040
Consumer 13 removed 9, computed 362880
Consumer 13 removed 7, computed 5040
Empty Queue.
Producer 14 added 0, queue size 0
Producer 14 added 6, queue size 1
Producer 14 added 3, queue size 2
Producer 14 added 3, queue size 3
Producer 14 added 6, queue size 4
Queue is full
Consumer 13 removed 0, computed 1
Consumer 13 removed 6, computed 720
Consumer 13 removed 3, computed 6
Consumer 13 removed 3, computed 6
Consumer 13 removed 6, computed 720
Empty Queue.
Producer 14 added 2, queue size 0
Producer 14 added 6, queue size 1
Producer 14 added 5, queue size 2
Producer 14 added 6, queue size 3
Producer 14 added 7, queue size 4
Queue is full
Consumer 13 removed 2, computed 2
Consumer 13 removed 6, computed 720
Consumer 13 removed 5, computed 120
Consumer 13 removed 6, computed 720
Consumer 13 removed 7, computed 5040
Empty Queue.
Producer 14 added 2, queue size 0
Producer 14 added 4, queue size 1
Producer 14 added 3, queue size 2
Producer 14 added 9, queue size 3
Producer 14 added 5, queue size 4
Queue is full
Consumer 13 removed 2, computed 2
Consumer 13 removed 4, computed 24
Consumer 13 removed 3, computed 6
Consumer 13 removed 9, computed 362880
Consumer 13 removed 5, computed 120
Empty Queue.
Producer 14 added 1, queue size 0
Producer 14 added 0, queue size 1
Producer 14 added 0, queue size 2
Producer 14 added 6, queue size 3
Producer 14 added 0, queue size 4
Queue is full
Consumer 13 removed 1, computed 1
Consumer 13 removed 0, computed 1
Consumer 13 removed 0, computed 1
Consumer 13 removed 6, computed 720
Consumer 13 removed 0, computed 1
Empty Queue.
Producer 14 added 5, queue size 0
Producer 14 added 5, queue size 1
Producer 14 added 9, queue size 2
Producer 14 added 9, queue size 3
Producer 14 added 9, queue size 4
Queue is full
Consumer 13 removed 5, computed 120
Consumer 13 removed 5, computed 120
Consumer 13 removed 9, computed 362880
Consumer 13 removed 9, computed 362880
Consumer 13 removed 9, computed 362880
Producer 14 added 9, queue size 2
Producer 14 added 8, queue size 3
Producer 14 added 5, queue size 4
Queue is full
Consumer 13 removed 9, computed 362880
Consumer 13 removed 5, computed 120
Consumer 13 removed 9, computed 362880
Consumer 13 removed 8, computed 40320
Consumer 13 removed 5, computed 120
Empty Queue.
Producer 14 added 1, queue size 0
Producer 14 added 4, queue size 1
Producer 14 added 2, queue size 2
Producer 14 added 5, queue size 3
Producer 14 added 1, queue size 4
Queue is full
Consumer 13 removed 1, computed 1
Consumer 13 removed 4, computed 24
Consumer 13 removed 2, computed 2
Consumer 13 removed 5, computed 120
Consumer 13 removed 1, computed 1
Empty Queue.
Producer 14 added 2, queue size 0
Producer 14 added 6, queue size 1
Producer 14 added 1, queue size 2
Producer 14 added 6, queue size 3
Producer 14 added 4, queue size 4
Queue is full
Consumer 13 removed 2, computed 2
Consumer 13 removed 6, computed 720
Consumer 13 removed 1, computed 1
Consumer 13 removed 6, computed 720
Consumer 13 removed 4, computed 24