Java 生产者/消费者模式和观察者模式之间的差异
我想了解观察者模式和生产者/消费者最常见的问题之间的区别,因为两者都需要同步,以便更改可用,我如何实现两者(如果它们不同)它们之间的区别是所需同步的性质 在观察者模式的情况下,每当观察对象发生兴趣变化时,立即通知所有观察者。因此,模式需要即时的每次更改同步。事实上,观察者模式并不需要不同的线程。正在更改观察对象的线程可以通知所有已注册的观察者 但是,对于生产者-消费者,唯一需要的同步是当没有元素时消费者必须等待,当缓冲区已满时生产者必须等待。但不需要每个对象同步。生产者可以在消费者消费任何对象之前生产多个对象,消费者可以一次性消费多个对象。因此,这里不需要像观察者一样立即通知Java 生产者/消费者模式和观察者模式之间的差异,java,multithreading,design-patterns,Java,Multithreading,Design Patterns,我想了解观察者模式和生产者/消费者最常见的问题之间的区别,因为两者都需要同步,以便更改可用,我如何实现两者(如果它们不同)它们之间的区别是所需同步的性质 在观察者模式的情况下,每当观察对象发生兴趣变化时,立即通知所有观察者。因此,模式需要即时的每次更改同步。事实上,观察者模式并不需要不同的线程。正在更改观察对象的线程可以通知所有已注册的观察者 但是,对于生产者-消费者,唯一需要的同步是当没有元素时消费者必须等待,当缓冲区已满时生产者必须等待。但不需要每个对象同步。生产者可以在消费者消费任何对象之
至于实现,你可以看看维基百科的文章:和。生产者-消费者问题可以被视为观察者模式的一个例子。谢谢你的解释,我有一个问题:-是否可以在单个java程序中应用这两个概念?为什么不?现实世界中的应用程序非常庞大,它们可以在一个程序中应用几十个这样的概念。