Public lab
Implement a thread-safe bounded FIFO queue using Java ReentrantLock and Condition variables.