分析&回答 Java生产者消费者是最基础的线程同步问题,大概整理了一下有5种生产者消费者的写法,分别如下。 用synchronized对存储加锁,然后用object原生的wait() 和 notify()做同步。 用concurrent.locks.Lock,然后用condition的await() 和signal()做同步。 直接使用concurrent.BlockingQueue。 使用PipedInputStream/PipedOutputStream。 使用信号量Semaphore。 反思&扩展 线程池的核心就是:生产者-消费者模型