OpenHarmony开发者论坛
标题:
信息量与互斥锁
[打印本页]
作者:
sujoaxubaiyang
时间:
2024-4-4 21:28
标题:
信息量与互斥锁
1·互斥锁的解锁和加锁状态是什么样的?
2·如何用信息量来控制并发访问?
作者:
dragon
时间:
2024-4-5 15:32
标题:
信息量与互斥锁
互斥锁只有两种状态,要么可用(解锁状态),要么被拥有线程阻塞(加锁状态)。
相关接口:
osMutexNew 创建并初始化一个互斥锁
osMutexGetName 获得指定互斥锁的名字
osMutexAcquire 获得指定的互斥锁的访问权限
osMutexRelease 释放指定的互斥锁
osMutexGetOwner 获得指定互斥锁的所有者线程
osMutexDelete 删除指定的互斥锁
您是想问“如何用信号量(Semaphore)来控制并发访问”么?很简单,获取一个许可证,之后访问资源,最后释放这个许可证。
使用信号量,建立对共享资源池的访问许可证集,任何一个线程,要想访问共享资源池,首先要获取一个许可证,获取到之后,才能进来访问共享资源池,访问结束后,要及时释放这个许可证,因为只要你不释放它,其他线程就无法获取到他,也就无法访问共享资源池。
由于某一时刻,能够持有许可证的线程的数量,不会超过许可证的总量,也就保证了对共享资源池的并发同步访问。
欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/)
Powered by Discuz! X3.5