0

假设 linux 中的任务 A 正在等待一个锁,此时指定的锁被另一个任务 B 持有。所以任务 A 将在等待队列中。现在一旦任务 B 完成,然后释放锁。现在我的疑问是任务A如何知道锁可用以及它是如何唤醒的?

4

1 回答 1

0

答案是……内核

锁定和解锁由专用的内核函数完成。调用 unlock 时,内核会检查是否有任何人在等待锁定,如果有,他们会获得锁定并被内核唤醒。

于 2013-04-17T12:02:26.447 回答