Mutex使用add解锁

时间:2010-11-21 05:09:28

标签: mutex

在检查Mutex解锁代码时,我发现一些在互斥变量中添加1而不是直接将其设置为“1”。这有什么优点/缺点吗?

由于

2 个答案:

答案 0 :(得分:0)

我想知道您是否有可能在审核mutexsemaphore资源访问控制之间的区别。


修改

这就是这两个OP所需的CPU周期。据我所知add使用的CPU周期少于mov。但是,它再次依赖于拱形且有问题。另外,请记住,汇编程序选择如何编写更高级别的语言指令非常依赖于周围的指令

答案 1 :(得分:0)

无论使用什么操作,它都是原子的,这一点非常重要。对我来说,做一个集合而不是添加是最有意义的,特别是如果有一个测试和设置指令或实现。

我找到了x86架构的TestAndSet函数的this实现。这里它使用了一个集合(mov)但它也可以使用addinc来执行此操作,但它需要eax0用于原子性的xchg指令。我认为要求eax为零可能是一个骗局。