.NET Lock性能计数器差异

时间:2012-02-02 13:56:42

标签: .net windows performancecounter

“.NET CLR LocksAndThreads”类别中的“Total of of Contentions”和“Queue Length Peak”窗口性能计数器有什么区别? MSDN文档可在此处获取:http://msdn.microsoft.com/en-us/library/zf749bat.aspx

我认为我的困惑在于“尝试获取锁失败的线程数”与“自应用程序启动以来等待获取托管锁的线程总数”之间的区别。本质上,等待获取锁定之间的区别是什么,我将其解释为当您尝试获取锁定时其他人持有它,并且尝试获取锁定失败?我唯一能想到的就是如何尝试锁定获取,例如Monitor.TryEnter与Monitor.Enter。

1 个答案:

答案 0 :(得分:1)

在尝试获取锁时,我会考虑3种情况:
a)资源没有被其他实体锁定,立即获得 b)资源被锁定,但按时发布,延迟获得
c)资源被锁定,但未按时发布,收购超时

争用的总数 - 方案(c)的总数
队列长度峰值 - 在任何给定时间,状态(b)中的大多数线程