作为大多数系统中的互斥锁都是使用CAS操作实现的,我想知道这两个结构的性能比较。如果一个互斥锁是使用CAS实现的,那么对于该互斥锁的尝试锁定调用是否与CAS操作的性能相同或类似?由于CAS高度依赖于系统,我在思考它是否可以简单地替换为更为知名和标准化的mutex尝试锁定。
关于CAS和锁的相对性能,不能轻易下结论。不同操作系统实现锁的方式也各异。Win32需要切换到内核进行上下文切换,速度较慢,而Linux则使用用户空间互斥量。性能还会受关键部分的争用程度的影响。此外,你还需要考虑在关键部分中要做什么,是增加一个整数还是执行复杂的操作?因此,有许多变量涉及到相对性能,我们不能就此做出一般性的结论。建议使用您语言/平台最容易使用的锁抽象。测量其性能,并查看是否符合您的要求。
CriticalSection
),这只是术语问题。 - Andriy Tylychko