Kun*_*rma 3 java multithreading design-patterns
我想了解观察者模式和最常见的生产者/消费者问题之间的区别,因为两者都需要同步以便更改可用,以及我如何实现两者(如果它们不同)
tas*_*oor 5
它们之间的区别在于所需同步的性质。
在观察者模式的情况下,每当观察对象发生兴趣变化时,所有观察者都会立即得到通知。因此模式需要立即进行每次更改同步。事实上,观察者模式不需要不同的线程。改变被观察对象的线程可以通知所有注册的观察者。
但是,在生产者-消费者的情况下,唯一需要的同步是消费者必须在没有元素时等待,而生产者必须在缓冲区已满时等待。但是不需要每个对象同步。生产者可以在消费者消费任何一个对象之前生产多个对象,消费者可以一次消费多个对象。所以这里不需要像观察者这样的即时通知。
至于实现,你可以看看他们的维基百科文章:观察者模式和生产者-消费者问题。
归档时间:
8 年,11 月 前
查看次数:
2575 次
最近记录:
5 年,8 月 前