linux中等待锁的任务如何在另一个任务释放锁后唤醒



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

答案是…内核 .

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

相关内容

最新更新