-
雙緩衝區
鎖定
所謂“雙緩衝區”,故名思義就是要有倆緩衝區(簡稱A和B)。這倆緩衝區,總是一個用於生產者,另一個用於消費者。
- 中文名
- 雙緩衝區
- 釋 義
- 有倆緩衝區(簡稱A和B
- 用 途
- 用於生產者,用於消費者
- 目 的
- 繪製屏幕產生“閃爍”或“蠕動”
雙緩衝區屏幕繪製相關的領域
為了解決:繪製屏幕時產生“閃爍”或者“蠕動”。
為什麼要使用雙緩衝區?通過前面的學習我們知道當要繪製屏幕時,我們只要調用paint函數即可。其中我們可以使用繪圖方法來繪製任何文字圖形圖像。可是當我們繪製的東西多了之後,你就會發現有時屏幕上的顯示根本不是我們要的結果,很雜亂。細想想,會知道因為paint函數中,我們是一邊繪製一邊顯示,所以當內容過多,就會產生沒繪製完成,就顯示到屏幕上的結果。
因此,雙緩衝區就提供了一個完美的解決方案。我們可以在緩衝區2中繪製圖像,而是用緩衝區1來輸出到屏幕。這樣我們就可以控制繪製和現實的過程,從而避免上面的現象。
雙緩衝區設備驅動和工控方面
1.為啥要雙緩衝區
記得前幾天在介紹隊列緩衝區 時,提及了普通隊列緩衝區的兩個性能問題:“內存分配的開銷”和“同步/互斥的開銷”(健忘的同學,先回去看看那個帖子 複習一下)。“內存分配的開銷”已經在介紹環形緩衝區 的時候解決了,而今天要介紹的雙緩衝區,就是衝着同步/互斥的開銷來的。 為了防止有人給咱扣上“過度設計”的大帽子,又得來一個事先聲明:只有當同步或互斥的開銷非常明顯的時候,你才應該考慮雙緩衝區的使用。否則的話,大夥兒還是老老實實用最基本、最簡單的隊列緩衝區吧。
2.雙緩衝區的原理