传统的wait 和 notifyAll 实现的生产者消费者模型
以及 通过ReentrantLock 和Condition 实现的缓存进一步实现的生产者消费者模型