Implement a solution for the bounded buffer problem where you have a queue of work items and several producer/consumer threads.
Sigiloso
Use a counting semaphore, incrementing each time a producer puts a new item in the queue and decrementing each time a consumer removes an item from the queue.