反應器模式與生產者消費者模式的區別

關於設計模式反應器模式與生產者消費者模式的區別,首先我們要了解兩種設計模式的設計思想,具體如下:
生產者消費者模型:
這種模型的應用場景通常是多線程狀態下,其中有一個或者多個線程去生產數據,然後將對應的數據放入到一個隊列或者容器中,再有其他的一個或者多個線程去訪問這個隊列或者容器,然後消耗數據,這種模式非常常用,注意點就是控制好臨界區,對多線程訪問的數據加上一把鎖。

反應器模型:
這種模型比較常用到網絡編程中。比如IO複用模型的epoll編程+反應器模式是我們做服務端高併發必須瞭解的知識,這裏就不對epoll進行講解了,反應器模式是通過一個線程採集數據,然後放入到一個容器或者隊列中,然後多路分發,處理各個事件。

相同點:
都是通過相關的線程去採集收集數據,然後放入到對應的隊列或者容器中緩存。

不同點:
生產者消費者是工作線程去主動的訪問公共資源然後消耗,而反應器模型是將收集到的數據放入反應器中,反應器再去主動的下發到各個線程中處理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章