未验证 提交 d9b78f18 编写于 作者: A Austin 提交者: Gitee

update zh-cn/device-dev/kernel/kernel-small-basic-trans-rwlock.md.

Signed-off-by: NAustin23 <liaozhiqi7@huawei.com>
上级 21f38970
...@@ -51,33 +51,33 @@ ...@@ -51,33 +51,33 @@
2. 申请读模式下的锁LOS_RwlockRdLock或写模式下的锁LOS_RwlockWrLock。 2. 申请读模式下的锁LOS_RwlockRdLock或写模式下的锁LOS_RwlockWrLock。
申请读模式下的锁: 申请读模式下的锁:
- 若无人持有锁,读任务可获得锁。 - 若无人持有锁,读任务可获得锁。
- 若有人持有锁,读任务可获得锁,读取顺序按照任务优先级。 - 若有人持有锁,读任务可获得锁,读取顺序按照任务优先级。
- 若有人(非自己)持有写模式下的锁,则当前任务无法获得锁,直到写模式下的锁释放。 - 若有人(非自己)持有写模式下的锁,则当前任务无法获得锁,直到写模式下的锁释放。
申请写模式下的锁: 申请写模式下的锁:
- 若该锁当前没有任务持有,或者持有该读模式下的锁的任务和申请该锁的任务为同一个任务,则申请成功,可立即获得写模式下的锁。 - 若该锁当前没有任务持有,或者持有该读模式下的锁的任务和申请该锁的任务为同一个任务,则申请成功,可立即获得写模式下的锁。
- 若该锁当前已经存在读模式下的锁,且读取任务优先级较高,则当前任务挂起,直到读模式下的锁释放。 - 若该锁当前已经存在读模式下的锁,且读取任务优先级较高,则当前任务挂起,直到读模式下的锁释放。
3.申请读模式下的锁和写模式下的锁均有三种:无阻塞模式、永久阻塞模式、定时阻塞模式,区别在于挂起任务的时间。 3.申请读模式下的锁和写模式下的锁均有三种:无阻塞模式、永久阻塞模式、定时阻塞模式,区别在于挂起任务的时间。
4.释放读写锁LOS_RwlockUnLock。 4.释放读写锁LOS_RwlockUnLock。
- 如果有任务阻塞于指定读写锁,则唤醒被阻塞任务中优先级高的,该任务进入就绪态,并进行任务调度; - 如果有任务阻塞于指定读写锁,则唤醒被阻塞任务中优先级高的,该任务进入就绪态,并进行任务调度;
- 如果没有任务阻塞于指定读写锁,则读写锁释放成功。 - 如果没有任务阻塞于指定读写锁,则读写锁释放成功。
5. 删除读写锁LOS_RwlockDestroy。 5. 删除读写锁LOS_RwlockDestroy。
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> - 读写锁不能在中断服务程序中使用。 > - 读写锁不能在中断服务程序中使用。
> >
> - LiteOS-A内核作为实时操作系统需要保证任务调度的实时性,尽量避免任务的长时间阻塞,因此在获得读写锁之后,应该尽快释放该锁。 > - LiteOS-A内核作为实时操作系统需要保证任务调度的实时性,尽量避免任务的长时间阻塞,因此在获得读写锁之后,应该尽快释放该锁。
> >
> - 持有读写锁的过程中,不得再调用LOS_TaskPriSet等接口更改持有读写锁任务的优先级 > - 持有读写锁的过程中,不得再调用LOS_TaskPriSet等接口更改持有读写锁任务的优先级
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册