C++ Primer筆記(3)

來源:互聯網
上載者:User

SRWLock允許我們區分那些想要讀取資源的值的線程(讀取者線程)和想要更新資源的值的線程(寫入者線程)。
讓所有的讀取者線程在同一時刻訪問共用資源是可行的,因為不存在破壞資料的風險。
只有當寫入者想要對資源進行更新的時候才需要進行同步。這種情況下,寫入者線程應該獨佔對資源的訪問權:

任何其它線程,無論是讀取者還是寫入者線程,都不允許訪問資源。


初始化

VOID InitializeSRWLock(PSRWLOCK SRWLock);


寫入者線程可以調用AcquireSRWLockExclusive擷取對被保護的資源的獨佔訪問權。

完成對資源的更新之後,應該調用ReleaseSRWLockExclusive完成對資源的鎖定。


讀取者線程兩個操作:
VOID AcquireSRWLockShared(PSRWLOCK SRWLock);
VOID ReleaseSRWLockShared(PSRWLOCK SRWLock);
不支援的:不能遞迴獲得SRWLOCK,一個線程不能為了多次寫入資源而多次鎖定資源,然後多次釋放。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.