【RTX51 Tiny初级】11_os_wait和os_switch_task区别和使用场合


01 - os_send_signal()和os_set_ready()的区

  os_wait()用于等待某个信号,os_switch_task()用于协助调度,相同点和不同点如下:
  相同点:正常情况下都能发生上下文切换,也就是成功执行API后task都会停止当前执行,由running态转为waiting / ready态。
  不同点:os_wait()让task进入waiting态,需要信号触发(set signal / set ready)才能恢复到ready,等待调度后才能运行进入running。os_switch_task()让task进入ready态,是一种协助调度的手段,主动让出CPU资源,随后等待调度进入running
在这里插入图片描述

02 - 使用场合

  当一个task在完成自己的工作后可以让出CPU资源,等待下一次继续执行的时候,就用os_switch_task()。例如,有一个main_task,它主要轮询handle各种由定时器或中断引起的flag,由于是轮询,所以不必要一直执行,于是轮询完一次后,就可以让出CPU资源,供其它task使用:

void main_task() _task_ 1
{
   
	while(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值