Java多线程知识点(下)

26) 如何写代码来解决生产者消费者问题?

我们先尝试使用队列实现一个生产者和消费者模式。那么就需要先了解队列,队里的接口定义如下
    Queue.
         添加:
                  add(E element) 添加一个,如果超出了界限,则抛出异常
                  Offer(E element) 添加一个,如果超出了界限,则返回false
        获取并删除
                  remove() 获取并删除队头,如果队列为空,则抛出异常
                  Poll() 获取并删除队头, 如果队列为空,则返回null
        获取但不删除
                   element() 获取但是并不删除,如果队列为空,则抛出异常
                  peek() 获取但是并不删除,如果队列为空,则返回null.
 而阻塞队列则多了两个阻塞的方法,put 和 take,参见下表

继续阅读“Java多线程知识点(下)”

如何写代码来解决生产者消费者问题?

这个题目考验的实际上是线程间的通信和同步问题。我们再有一篇文章中,使用Object的wait和notify实现了线程间的同步。参见 : https://huster.top/htmls/615.html

继续阅读“如何写代码来解决生产者消费者问题?”