对于使用互斥锁时优先级的反转问题的理解
作者:互联网
按照正常的情况来说一个低优先级的任务正在处理的事后,这时候来了一个中优先级或者高优先级的任务,系统会先处理更高的优先级的任务。
但是有这么一种情况:
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