如果系统有3个任务a、b、c,优先级a>b>c,a任务的函数体执行完,进行延时,在延时阶段,系统自动会切换去执行次优先级的任务b,假如b的函数体执行完,而且它的延时等待也完成时,a任务的延时等待刚好也完成了,那按照优先级顺序,系统应该再次执行优先级最高的任务a,这样是不是就会出现c任务一直没有机会执行?
UCOS新手,以上只是我初入系统的一点想法,不知道对不对,请大家吐槽。 本帖最后由 ikikedota 于 2015-2-7 21:41 编辑
如果a只有一次是 阻塞延迟,以后 都不阻塞延迟,那c 和 b都永远没机会执行。
——b曾经有机会执行,就你刚说的那次,但以后就绝对没机会了,假如a以后都不延迟。
但事实上,谁会这么蛋疼的写a呢?
它就为了炫耀一次给别人机会才阻塞,以后就不阻塞了?
显然这种蛋疼的写法是没啥机会的,但假如有,那你说对了,b c都被饿死了