In this assignment, you will write a Java program that implements the solution to the bounded buffer problem between a producer and a consumer. The producer will produce forever and the consumer will consume forever. The producer will put data into the buffer and the consumer will remove data from the buffer. The buffer must implement a means of ensuring that the buffer never enters an under flow (take too much data out) or over flow put too much data into the buffer. Additionally the buffer must have functionality so that a critical region problem does not occur with parallel updates to the data.
Test you application by creating a java thread for the produce, the consumer and having them access a shared buffer with declared size 5.