Java 如何实现生产者消费者?

103 阅读1分钟

分析&回答

Java生产者消费者是最基础的线程同步问题,大概整理了一下有5种生产者消费者的写法,分别如下。

  1. 用synchronized对存储加锁,然后用object原生的wait() 和 notify()做同步。
  2. 用concurrent.locks.Lock,然后用condition的await() 和signal()做同步。
  3. 直接使用concurrent.BlockingQueue。
  4. 使用PipedInputStream/PipedOutputStream。
  5. 使用信号量Semaphore

反思&扩展

线程池的核心就是:生产者-消费者模型

image.png


喵呜面试助手: 一站式解决面试问题,你可以搜索微信小程序 [喵呜面试助手] 或关注 [喵呜刷题] -> 面试助手 免费刷题。如有好的面试知识或技巧期待您的共享!