My synchronized producer consumer implementation in Java. Uses one implementation of producer/consumers to handle multiple buffer implementations.