Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
假设 linux 中的任务 A 正在等待一个锁,此时指定的锁被另一个任务 B 持有。所以任务 A 将在等待队列中。现在一旦任务 B 完成,然后释放锁。现在我的疑问是任务A如何知道锁可用以及它是如何唤醒的?
答案是……内核。
锁定和解锁由专用的内核函数完成。调用 unlock 时,内核会检查是否有任何人在等待锁定,如果有,他们会获得锁定并被内核唤醒。