【发布时间】:2010-09-06 14:03:11
【问题描述】:
try_lock 在互斥体上的效率如何? IE。在这两种可能的情况下,可能有多少汇编指令以及它们消耗了多少时间(即互斥体之前已经被锁定,或者它是空闲的并且可以被锁定)。
如果您在回答问题时遇到问题,这里有一个方法(如果真的不清楚):
如果该答案很大程度上取决于操作系统的实现和硬件:请回答常见操作系统(例如 Linux、Windows、MacOSX)、最新版本(以防它们与早期版本有很大差异)和常见操作系统硬件(x86、amd64、ppc、arm)。
如果这也取决于库:以 pthread 为例。
如果它们真的完全不同,也请回答。如果它们不同,请说明差异。 IE。他们有什么不同?周围有哪些常见的算法?是否有不同的算法,或者所有常见系统(如果不清楚,上面的列表很常见)是否都以相同的方式实现了互斥锁?
截至this Meta discussion,这确实应该是一个单独的问题。
另外,我已将此问题作为与performance of a lock 分开的问题提出,因为我不确定try_lock 的行为是否会有所不同。也许还取决于实施。再说一遍,请回答常见的实现。而这个非常相似/相关的问题显然表明这是一个可以回答的有趣问题。
【问题讨论】:
-
真的有必要开始一个与您 2 分钟前问的几乎相同的全新问题吗?特别是考虑到这个问题与我在上一个问题中发现的问题完全相同。
-
@Gian:嗯,这是一个不同的问题,不是吗?通常,尽可能将单独的问题分开是有帮助的。此外,这个问题的答案可能完全独立于另一个问题。你知道不是这样吗?我不知道,我认为不是。那么请回答问题。 :)
-
@Gian:在这里阅读:meta.stackexchange.com/questions/39223/…
-
关于您在每个问题中包含多少详细信息,它们是同一个问题。可以合理地说,在这两种情况下,答案都是“取决于实现”。
-
我相信我的论点是为什么我认为它是完全复制的,而且似乎其他人也同意我的观点。该元帖子讨论了同一领域中的独立问题。关于包含多少细节以及限制每个细节范围的方式(根本不是),您的问题是相同的。
标签: multithreading locking pthreads mutex