Intro Producer Consumer Mode Advantage I

Intro Producer Consumer Mode Advantage

這篇介紹Producer Consumer Mode Advantage。

Intro

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Producer -> Buffer -> Consumer

Producer Consumer模式在軟體專案開發很常運用在現實情境。
為什麼不讓Consumer直接使用Producer的資源呢? 還要特別建立
Buffer區!

要介紹以下幾個優點:
1.Decoupling(解耦) : 增加Buffer區是為了不讓Producer、Consumer
互相依賴,若沒有Buffer區則Consumer的代碼修改,可能會影響到Producer。
在兩者依賴於Buffer區,不互相依賴的話,相對耦合也降低。

2.Concurrency(併發) : 若Producer直接呼叫Consumer的方法,由於call function
Synchronize,在Consumer尚未return之前,Producer只能一直等待。萬一Consumer
處理很慢,Producer則會浪費時間去等待。
增加Buffer區,可將Producer和Consumer視為獨立的併發主體,Producer把產生的data往
Buffer區送,就可以繼續產生下一個data,而不用依賴Consumer的資料處理速度。

3.Support busy time : 增加Buffer區其中一個好處是,若產生data的速度時快時慢,當
data產生快時,Consumer會來不及處理,這些未處理的data將暫存在Buffer區。等Producer
產生的速度慢下來時,Consumer會慢慢處理消化data。