GC 与 GC 暂停EE

发布于 2024-12-10 10:03:00 字数 201 浏览 0 评论 0原文

当我运行 !threads -special 命令时,我得到以下结果。为简洁起见,我已删除输出中的其他行。

OSID     Special thread type  

15 26ec GC 暂停EE
15 3174 GC

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

When I run !threads -special command, I get following. There are other lines also in output that i have removed for brevity.

OSID     Special thread type  

15 26ec GC SuspendEE
15 3174 GC

Any ideas what is the difference between GC and GC SuspendedEE

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

看透却不说透 2024-12-17 10:03:00

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

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

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

In server type GC you can have multiple GC threads -- more exactly one thread per processor. The way server GC works if one of the threads stops CLR execution engine (EE) so that GC threads could safely move objects around. Only one thread is supposed to stop EE, and GC thread #0 always does this. The same thread is responsible for resuming EE after GC cycle completes.

The presence of "GC SuspendEE" in the !threads -special output means two things:

  1. This is GC thread #0
  2. The GC cycle is currently executing. Once finished, the SuspendEE flag will be cleared from this thread.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文