Question: You are asked to implement a message queue class using Java. The following figure depicts a message queue connector class, followed by the detailed specifications
You are asked to implement a message queue class using Java. The following figure depicts a message queue connector class, followed by the detailed specifications of operations. The message queue connector class has send() and receive(), and the size of queue is 3. You can declare additional variables in the message queue class if necessary. To test your implementation, your program should create two separate threads, a producer thread and a consumer thread. The producer thread sends a message having a structure, (string, integer) e.g., (add, 3) or (multiply, 7) - to a consumer thread via a message queue. There is a SimpleCalculation class that has two operations, add() and multiply(). You should implement the SimpleCalculation class. When the consumer thread receives a message from the queue, it extracts the message and then calls one of operations on the SimpleCalculation class depending on the message. For example, the consumer thread calls the add() operation if it receives a message like (add, 3), while it calls the multiply() operation if it receives a message like (multiply, 3). The add() operation in the SimpleCalculation adds 10 to the integer in a message from the producer thread and displays the result on the screen. The multiply() operation multiplies the integer by 10 and displays the result on the screen. The producer thread should displays the messages on the screen before it sends the messages to the consumer thread. The messages are (add, 4), (multiply, 1), (multiply, 8), (add, 2), (add, 3), (add, 99), (multiply, 53) sent to the consumer. Please make a zip file containing all source codes (.java files) for this assignment

ucer receive (out message) send (in message) MessageQueue - messageQ: Queue eue + send (in message ) +receive (out message) Message queue class MessageQueue -- Encapsulate message queue that holds max of maxCount messages -- Monitor operations are executed mutually exclusively; private maxCount : Integer; private messageCount : Integer = 0; Private buffer public send (in message) while messageCountmaxCount do wait; place message in buffer; Increment messageCount; if messageCount -1 then notify; end send; public receive (out message) while messageCount - 0 do wait; remove message trom butter; Decrement messageCount; if messageCount maxCount-1 then notify; end receive; end MessageQueue
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
