其他分享
首页 > 其他分享> > 对于使用互斥锁时优先级的反转问题的理解

对于使用互斥锁时优先级的反转问题的理解

作者:互联网

按照正常的情况来说一个低优先级的任务正在处理的事后,这时候来了一个中优先级或者高优先级的任务,系统会先处理更高的优先级的任务。

但是有这么一种情况:

a是一个高优先级的任务,但是a又是被互斥锁z给掌控的,如果z是锁住的状态,则a就得不到执行

b是一个正常中优先级的任务

c是一个低优先级的任务,而c也是被互斥锁z所控制的,如果z是锁住的状态,则a就得不到执行

 

当前c正在处理某些事情,这个时候来了一个a,但是c在处理的时候z是锁住的,所以尽管a是高优先级的任务,在z被锁住的情况下a也是得不到执行的,所以a就得等c先执行完将z释放了才能执行,这就是所谓的优先级反转。

而更加极端的情况是在a等待c的过程中,这个时候来了一个b,由于b的优先级比c高又没有z的限制,所以系统会先去执行b,这个时候a要等b执行完,然后c也执行完,才能得到执行,甚至更严重的话a可能得不到执行。

以上就是我对优先级反转的理解

标签:优先级,得不到,锁住,互斥,任务,锁时,执行
来源: https://www.cnblogs.com/taizihui/p/14148855.html