多核心與同步
比較互斥鎖(休眠等待的鎖)與自旋鎖,下列說明何者正確?
- A互斥鎖在等待期間會讓出CPU,所以適合長時間等待,但休眠與喚醒需要作業系統的額外負擔
- B互斥鎖在等待期間也會持續占用CPU,所以只能用於短時間的等待
- C互斥鎖與自旋鎖是相同的東西,只是名稱不同
查看答案與解析
正確答案:A. 互斥鎖在等待期間會讓出CPU,所以適合長時間等待,但休眠與喚醒需要作業系統的額外負擔
互斥鎖在取不到鎖時,會讓執行緒進入等待狀態並把CPU讓給其他執行緒,鎖被釋放時再由作業系統喚醒。由於等待期間不會浪費CPU,適合長時間的等待,但休眠、喚醒的處理與情境切換(context switch)需要數微秒左右。實際的函式庫中的互斥鎖,會先自旋一小段時間再休眠,結合了兩者的優點。
- A. 正確。依等待時間的長短來區分使用。
- B. 那是自旋鎖的特徵。
- C. 等待的方式不同。