【发布时间】:2011-02-10 05:30:41
【问题描述】:
如果考虑二进制信号量和互斥锁,哪个更快?我的意思是,需要更少的指令。与信号量相比,互斥量还保留了哪些额外数据?
【问题讨论】:
标签: concurrency synchronization mutex semaphore
如果考虑二进制信号量和互斥锁,哪个更快?我的意思是,需要更少的指令。与信号量相比,互斥量还保留了哪些额外数据?
【问题讨论】:
标签: concurrency synchronization mutex semaphore
这取决于实现,但您可能会发现互斥锁的实现速度稍快。互斥锁通常使用 test 和 set 来实现,而信号量通常使用 test 和 increment 来实现,或者作为一个互斥锁来保护递增的变量。
我建议在大多数情况下使用互斥锁,但不是因为速度;仅仅是因为使用互斥体编写的代码更容易理解,因为语义不那么复杂。
【讨论】: