多核心與同步
關於讀寫鎖(reader-writer lock)的特徵,下列何者正確?
- A寫入的執行緒可以有任意多個同時進入,但讀取的執行緒只能有1個
- B只讀取的執行緒可以有任意多個同時進入,但寫入的執行緒只能有1個,且此時其他任何人都不能進入
- C無論讀取或寫入,一定只能有1個執行緒進入
查看答案與解析
正確答案:B. 只讀取的執行緒可以有任意多個同時進入,但寫入的執行緒只能有1個,且此時其他任何人都不能進入
只讀取的話,同時進行也不會破壞資料,所以讀寫鎖允許讀取者之間同時執行,只讓寫入者獨占。對於像設定表這種常被讀取、很少被改寫的資料,可以提高平行度。不過若讀取者源源不絕,寫入者可能一直進不去,因此有些實作會設計成讓寫入者優先。
- A. 恰好相反。
- B. 正確。適合常被讀取的資料。
- C. 那是一般的鎖(互斥鎖)。