中级会员
- 积分
- 301
- 金钱
- 301
- 注册时间
- 2016-1-6
- 在线时间
- 84 小时
|
最近在学信号量和互斥信号量,它们的等待信号量函数OSSemPend()和OSMutexPend()里面的参数我有一些疑问。参数timeout:这个参数设置的是获取不到信号量的时候等待的时间。如果为0,表示一直等待下去,此时是处在挂起状态吗?
如果不为0,则最多等待timeout个时钟节拍,然后任务会放弃等待继续执行。
参数opt有两个选项:OS_OPT_PEND_BLOCKING:如果不能立即获得信号量,则表示要继续等待。
OS_OPT_PEND_NON_BLOCKING:如果不能立即获得信号量,则表示不等待信号量,直接返回。此时是继续执行还是处于就绪状态?
现在如果设置成0和OS_OPT_PEND_NON_BLOCKING,会是个什么状态,或者>0和OS_OPT_PEND_BLOCKING是什么状态?或者说这样设置时没有意义?
有哪位大神能够给出2个选项的4种排列组合时所有的状态?谢谢大家。
|
|