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..
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
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.