Mutexes 互斥

1.互斥实质上是二进制信号灯,每次只有一个线程可以拥有一个互斥。 此外,同一线程可能会对已拥有的互斥多次执行成功的互斥获取操作。每个互斥都是一个公用资源。

2.两个操作

        tx_mutex_get tx_mutex_put。获取操作获得不归另一个线程所有的互斥,而放置操作释放以前获得的互斥。 对于要释放互斥的线程,放置操作数必须等于先前的获取操作数。

3.互斥仅用于互相排斥。 与计数信号灯不同,互斥不能作为事件通知的方法。

4.互斥体互相排斥

        互相排斥用于控制线程对特定应用程序区域(也称为关键部分或应用程序资源)的访问 。 如果可用,互斥的所有权计数就为 0。 线程获得互斥后,在互斥时每成功执行一次 Get 操作,所有权计数就会递增一次,每成功执行一次 Put 操作则会递减一次。

5.创建互斥

        由应用程序线程在初始化期间或运行时创建。 互斥的初始条件始终是“可用”。 还可以在选择优先级继承的情况下创建互斥。

6.线程挂起

        当尝试对已归另一个线程所有的互斥执行获取操作时,应用程序线程可能会挂起。

        当拥有线程执行了相同数量的获取操作后,将执行挂起线程的获取操作,为其提供互斥所有权,并恢复线程。 如果多个线程在同一互斥上挂起,这些线程将按照FIFO恢复。

        tx_mutex_prioritize设置互斥优先级,将优先级最高的线程置于挂起列表的前面,让所有其他挂起的线程采用相同的 FIFO 顺序。

7.运行时互斥性能信息

        通过 tx_mutex_performance_info_get tx_mutex_performance_system_info_get获取。

        (1) 整个系统的总数

                互斥放置数、互斥获取数、互斥获取挂起数、互斥获取超时数、互斥优先级反转数、互斥优先级继承数

        (2) 每个互斥的总数

                互斥放置数、互斥获取数、互斥获取挂起数、互斥获取超时数、互斥优先级反转数、互斥优先级继承数

8.互斥控制块 TX_MUTEX

9.抱死

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值