GC与GC SuspendedEE

时间:2011-10-17 03:41:40

标签: windbg sos

当我运行!threads -special命令时,我得到了关注。输出中还有其他行,为简洁起见,我已将其删除。

OSID     Special thread type  

15 26ec GC SuspendEE
   15 3174 GC

任何想法GC和GC SuspendedEE之间有什么区别

1 个答案:

答案 0 :(得分:2)

在服务器类型GC中,您可以拥有多个GC线程 - 更确切地说,每个处理器一个线程。如果其中一个线程停止CLR执行引擎(EE)以便GC线程可以安全地移动对象,则服务器GC的工作方式。只有一个线程可以停止EE,而GC线程#0总是这样做。 GC循环完成后,同一个线程负责恢复EE。

!threads -special输出中存在“GC SuspendEE”意味着两件事:

  1. 这是GC线程#0
  2. GC循环当前正在执行。完成后,SuspendEE标志将从该线程中清除。