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