多核心與同步
關於自旋鎖(spinlock),下列說明何者正確?
- A在鎖被釋放之前,讓執行緒休眠並由作業系統喚醒的鎖
- B在鎖被釋放之前,以迴圈持續檢查鎖的變數來等待的鎖
- C旋轉磁碟以保護資料的機制
查看答案與解析
正確答案:B. 在鎖被釋放之前,以迴圈持續檢查鎖的變數來等待的鎖
自旋鎖會以原子指令嘗試取得鎖,若取不到就立刻反覆再試。由於沒有呼叫作業系統來休眠與喚醒的額外負擔,在持有鎖的時間極短時運作很快。常用於作業系統核心內,或與中斷處理常式之間的互斥。另一方面,它的缺點是等待期間仍會持續占用CPU。
- A. 休眠等待的是互斥鎖(mutex)等。
- B. 正確。是繞圈(spin)等待。
- C. 與磁碟無關。