看到同事寫的一部分**,感覺把生產者消費者模式用得淋漓盡致,很巧妙,有些地方還沒滲透為啥那樣寫,先說一下生產者消費者模式。
生產者消費者模式不在23種設計模式裡面,23種設計模式都是建立在物件導向的基礎之上的,但其實面向過程的程式設計中也有很多高效的程式設計模式,生產者消費者模式便是其中之一,它是我們程式設計過程中最常用的一種設計模式。
在實際的軟體開發過程中,經常會碰到如下場景:某個模組負責產生資料,這些資料由另乙個模組來負責處理(此處的模組是廣義的,可以是類、函式、執行緒、程序等)。產生資料的模組,就形象地稱為生產者;而處理資料的模組,就稱為消費者。生產者和消費者在同一時間段內共用同一儲存空間,生產者向空間裡生產資料,而消費者取走資料。 優點:支援併發、解耦。
我認為程式設計的本質就是在寫操作步驟,造資料,運算元據。只有游刃有餘地駕馭**,才算上乙個高手,想做的,都能通過程式實現,人碼合一。**的設計,可以借鑑生活模式,比如工廠模式,比如生產者消費者模式,等等。
比如10個廚師10個吃貨,10個廚師生產,10個吃貨消費,東西都放在案板上,案板就是個佇列。
生產者消費者 生產者與消費者模式
一 什麼是生產者與消費者模式 其實生產者與消費者模式就是乙個多執行緒併發協作的模式,在這個模式中呢,一部分執行緒被用於去生產資料,另一部分執行緒去處理資料,於是便有了形象的生產者與消費者了。而為了更好的優化生產者與消費者的關係,便設立乙個緩衝區,也就相當於乙個資料倉儲,當生產者生產資料時鎖住倉庫,不...
生產者 消費者模式
一 我哥們把資料存入redis快取區 生產者 二 我從緩衝器取資料,並作處理!消費者 詳細 如下 取訂單並判斷 redis new redis conn flag redis connect redis translate usefull host,redis translate usefull p...
生產者消費者模式
常見場景 某個模組負責產生資料,這些資料由另乙個模組來負責處理。產生資料的模組,就形象地稱為生產者 而處理資料的模組,就稱為消費者。該模式還需要有乙個緩衝區處於生產者和消費者之間,作為乙個中介。生產者把資料放入緩衝區,而消費者從緩衝區取出資料 緩衝區作用 1.解耦,生產者和消費者只依賴緩衝區,而不互...