中级会员
 
- 积分
- 263
- 金钱
- 263
- 注册时间
- 2019-4-28
- 在线时间
- 66 小时
|
10金钱
timeout:
指定等待信号量的超时时间(时钟节拍数),如果在指定时间内没有等到信号量则
允许任务恢复执行。如果指定时间为 0 的话任务就会一直等待下去,直到等到信号量。
opt:
用于设置是否使用阻塞模式,有下面两个选项。
OS_OPT_PEND_BLOCKING
指定信号量无效时,任务挂起以等待信号量。
OS_OPT_PEND_NON_BLOCKING 信号量无效时,任务直接返回
如果我设置timeout=10,超过了等待时间后,当前任务怎么执行的,看描述是任务继续往下执行,但是opt选项的意义呢?是不是若超过了等待时间,选择OS_OPT_PEND_BLOCKING就会一直等待信号量,有信号量了才执行下面的代码,任务调度依旧,而选择OS_OPT_PEND_NON_BLOCKING 则是直接任务调度,不执行下面的代码。还有在设置指定时间0的情况呢?
|
|