【发布时间】:2011-01-03 07:11:56
【问题描述】:
我已经在四台服务器上生成了转储,并且正在分析 !threadpool 和 !threads 的输出。我注意到大致一致的以下输出:
0:024> !threadpool
CPU utilization 0%
Worker Thread: Total: 2 Running: 0 Idle: 2 MaxLimit: 200 MinLimit: 2
Work Request in Queue: 0
Number of Timers: 27
Completion Port Thread:Total: 2 Free: 0 MaxFree: 4 CurrentLimit: 2 MaxLimit: 200 MinLimit: 2
!threads -special
ThreadCount: 32
UnstartedThread: 0
BackgroundThread: 19
PendingThread: 0
DeadThread: 13
Hosted Runtime: no
我的问题是:
1)如何确定这 27 个定时器的来源是什么?
2)13个死线程是什么意思?
3)我的一个线程被标记为有锁。如果我切换到该线程并运行!clrstack,我会看到以下内容 - 它与我的计时器有关吗?
0:027> !clrstack
OS Thread Id: 0x14cc (27)
*** WARNING: Unable to verify checksum for System.ni.dll
Child-SP RetAddr Call Site
000000000ca6e1a0 000007fef5c06477 System.Threading.WaitHandle.WaitAny(System.Threading.WaitHandle[], Int32, Boolean)
000000000ca6e200 000007fef673175b System.Net.TimerThread.ThreadProc()
000000000ca6e2d0 000007fef67c95fd System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
000000000ca6e320 000007fef84d1552 System.Threading.ThreadHelper.ThreadStart()
【问题讨论】:
标签: multithreading windbg threadpool