在編寫多線程的時候,有一種情況是十分常見的。那就是,有些公共數據修改的機會比較少。相比較改寫,它們讀的機會反而高的多。通常而言,在讀的過程中,往往伴隨著查找的操作,中間耗時很長。給這種代碼段加鎖,會極大地降低我們程序的效率。那么有沒有一種方法,可以專門處理這種多讀少寫的情況呢?
?? ?有,那就是讀寫鎖。
?? ? (2)初始化數據結構
?? ? (5)釋放讀寫鎖
文章總結:
?? ?(1)讀寫鎖的優勢只有在多讀少寫、代碼段運行時間長這兩個條件下才會效率達到最大化;
?? ?(2)任何公共數據的修改都必須在鎖里面完成;
?? ?(3)讀寫鎖有自己的應用場所,選擇合適的應用環境十分重要;
?? ?(4)編寫讀寫鎖很容易出錯,朋友們應該多加練習;
?? ?(5)讀鎖和寫鎖一定要分開使用,否則達不到效果。
?? ?有,那就是讀寫鎖。
?? ?(1)首先,我們定義一下基本的數據結構。
?? ?同時,為了判斷當前的鎖是處于讀狀態,還是寫狀態,我們要定義一個枚舉量,
?? ? (2)初始化數據結構
?? ? (3)獲取讀鎖
?? ? (4)獲取寫鎖
?? ? (5)釋放讀寫鎖
文章總結:
?? ?(1)讀寫鎖的優勢只有在多讀少寫、代碼段運行時間長這兩個條件下才會效率達到最大化;
?? ?(2)任何公共數據的修改都必須在鎖里面完成;
?? ?(3)讀寫鎖有自己的應用場所,選擇合適的應用環境十分重要;
?? ?(4)編寫讀寫鎖很容易出錯,朋友們應該多加練習;
?? ?(5)讀鎖和寫鎖一定要分開使用,否則達不到效果。