讀寫鎖在多線程應用中常常用到。適用於讀線程多餘寫線程的場合。對讀線程讀取共享資源時不加鎖,而對寫線程寫共享資源時進行加鎖控制。先說一下讀線程控制:只要此時沒有寫操做,就能夠進行讀取。多線程
一旦有寫操做,則阻塞等待。對於寫線程來講,若是此時有讀線程正在讀取資源,則等待其讀取完,而後判斷是否全部的讀線程是否已經所有讀取完成,若是是,則開始寫共享資源。這樣能夠提升效率。url
可是有一個問題:若是有不少讀線程同時讀取資源,且比較耗時,而寫線程優先級比較高,要及時對資源進行修改,這個時候不該該等全部的讀線程都讀取完成。而是馬上修改資源,針對這一點進行了改進。線程
1 (Ultra-simple C++ Read/Write Lock Class for Windows) [http://www.codeproject.com/Articles/16411/Ultra-simple-C-Read-Write-Lock-Class-for-Windows]code