[SOLVED] CMSC403-Chapter 13 Problem Set

24.99 $

Programming resource
Digital learning resource
Category:
✓ Practical programming resource
✓ Suitable for guided study and reference
✓ Tutor guidance available when needed

Description

5/5 - (2 votes)

Create a Java program that uses monitors to control access to a Food Bank.  You will create a Food Bank class that has a food amount and methods to give and take food.  You will create two threads for this program that will with either put food into the food bank or take food from the food bank.  Food cannot be taken if there is no food available to take.  This is not a true producer/consumer problem.  You really only have one condition, which is to wait if there is no food available to take.  Both actions of giving and taking food will be monitors and will involve locking the lock object and unlocking it when done.  The methods to take and give food must print out exactly what is happening with each action in the method, i.e. “Waiting to get food”, “Taking 10 items of food, the balance is now 20 items”.

 

In your code, you will have two classes that are the taker of food and the giver of food.  The Taker class will have a run method that randomly generates a food amount to take from the Food Bank object and will call the method in the Food Bank class to take that amount from the Food Bank.  It will also print out exactly what it is doing each time its run method is called, i.e. “Submitting a request to get 10 items of food”.  The Giver class will have a run method that randomly generates a

food amount to give to the Food Bank object and will call the method in the Food Bank class to give that amount from the Food Bank.  It will also print out exactly what it is doing each time its run method is called.

Resource details

Understand the Task Before You Use the Resource

Review the requirements, identify the programming concepts involved, study the implementation and test your understanding with your own examples and modifications.