1
我想了解Observer模式和生產者/消費者最常見問題之間的區別,因爲兩者都需要同步以便可以進行更改,以及如何執行兩者(如果它們不同)生產者/消費者模式和觀察者模式之間的區別
我想了解Observer模式和生產者/消費者最常見問題之間的區別,因爲兩者都需要同步以便可以進行更改,以及如何執行兩者(如果它們不同)生產者/消費者模式和觀察者模式之間的區別
它們之間的差異是所需同步的性質。
在觀察者模式的情況下,當觀察對象發生利益變化時,立即通知所有觀察者。因此模式需要立即進行每次更改同步。實際上,觀察者模式不需要不同的線程。正在改變觀察對象的線程可以通知所有註冊的觀察者。
但是,在生產者 - 消費者的情況下,唯一需要的同步是消費者在沒有元素時必須等待,並且當緩衝區已滿時生產者必須等待。但是不需要每個對象同步。生產者可以在消費者消費任何消費者之前產生多個對象,並且消費者可以一次消費多個對象。所以這裏不需要像觀察者那樣的即時通知。
就實施而言,您可以查看維基百科的文章:Observer Pattern和Producer-Consumer Problem。
謝謝你的解釋,我有問題: - 是否有可能在單個java程序中應用這兩個概念? –
爲什麼不呢?真實世界的應用程序非常龐大,因此他們可以在單個程序中應用幾十個這樣的概念。 – taskinoor