假设linux中的任务A正在等待一个锁,在那个时候指定的锁由另一个任务b持有,所以任务A将处于等待队列中。现在,一旦任务B完成,然后释放锁。现在我的疑问是任务A如何知道锁是可用的,它是如何唤醒的??
答案是…内核 .
锁和解锁是由专门的内核函数完成的。当调用unlock时,内核检查是否有人等待锁,如果有,他们获得锁并被内核唤醒。
假设linux中的任务A正在等待一个锁,在那个时候指定的锁由另一个任务b持有,所以任务A将处于等待队列中。现在,一旦任务B完成,然后释放锁。现在我的疑问是任务A如何知道锁是可用的,它是如何唤醒的??
答案是…内核 .
锁和解锁是由专门的内核函数完成的。当调用unlock时,内核检查是否有人等待锁,如果有,他们获得锁并被内核唤醒。
javascript python java c# php android html jquery c++ css ios sql mysql arrays asp.net json python-3.x ruby-on-rails .net sql-server django objective-c excel regex ruby linux ajax iphone xml vba spring asp.net-mvc database wordpress string postgresql wpf windows xcode bash git oracle list vb.net multithreading eclipse algorithm macos powershell visual-studio image forms numpy scala function api selenium