什么是队列长度峰值

Cap*_*mic 4 .net debugging multithreading

在此输入图像描述

我在Process Explorer中查看我的应用程序.队列峰值长度具有非常高的值.任何人都可以解释这个参数的含义.

Mar*_*ell 9

从MSDN 锁和线程性能计数器:

队列长度峰值显示自应用程序启动以来等待获取托管锁定的线程总数.

然而,我怀疑它的意思"......总数的时代任何线程等待着......",而不是已经匆匆线程的实际数量.

如果该描述是正确的,则命名是奇数...我希望 "峰值"表示"最大" - 即"队列长度的最长时间" - 但这似乎不是所描述的.

  • @CaptainComic 正如我试图描述的那样,以及 MSDN 的提示;线程必须等待托管锁的次数。注意:这并不一定意味着有问题 - 这样做可能*完全正确*。例如,一个带有 Pulse 的高度活跃的生产者/消费者队列可能(我猜)导致这种情况,**甚至没有被竞争**(如果消费者正在等待生产者投入工作,或者生产者正在等待消费者处理工作以腾出空间) (2认同)