Threadx os 线程调度方法:
1,基于优先级的调度,高优先级线程抢占低优先级线程
2,同一优先级线程可以采用基于时间片轮转调度方式
3,线程主动挂起,其他线程获得调度执行
几种方式同时采用,联合进行线程调度。
通过创建线程时设置时间片为0,可以禁止基于时间片轮转调度。
基于优先级抢占调度
通过中断或消息驱动进行调度。
1,高优先级线程抢占低优先级线程
2,只要有高优先级线程执行,低优先级线程无法执行
3,高优先级线程可以主动挂起,低优先级线程恢复执行
4,系统中所有线程优先级相同,需要执行线程主动挂起,下一就绪线程才有机会得到调度执行。
举例:
1,线程a执行,发送消息给线程b,线程b优先级高,保证实时性,线程b立即抢占线程a,获得处理器执行
2,线程b执行过程中,发生硬件中断,进行中断处理。中断处理中唤醒了线程c。
3,中断处理完成返回时,由于线程c优先级最高,切换到线程c执行。
4,线程c处理完,主动挂起,由于之前线程b被抢占,并且是系统中优先级最高线程,线程