Task1的 0处创建了一个信号量mySem,1处获得mySem,执行完PrintStr(),释放mySem,3处才能得到mySem,执行PrintStr();在执行PrintStr假设时间较长Task1任务优先级比较高,可能会抢占Task2,但是由于mySem已经被Task2的3处占用,所以Task1的1处一直在等无法继续运行,所以又会切换到Task2继续执行,直到4处释放mySem,1处才可以继续运行。
时间: 2024-10-06 11:55:25
Task1的 0处创建了一个信号量mySem,1处获得mySem,执行完PrintStr(),释放mySem,3处才能得到mySem,执行PrintStr();在执行PrintStr假设时间较长Task1任务优先级比较高,可能会抢占Task2,但是由于mySem已经被Task2的3处占用,所以Task1的1处一直在等无法继续运行,所以又会切换到Task2继续执行,直到4处释放mySem,1处才可以继续运行。