2

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

OSID     Special thread type  

15 26ec GC 悬浮液EE
15 3174 GC

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

4

1 回答 1

2

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

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

  1. 这是 GC 线程 #0
  2. GC 循环当前正在执行。完成后,将从该线程中清除 SuspendEE 标志。
于 2011-10-17T19:43:49.430 回答