2

!threads -specialコマンドを実行すると、次のようになります。簡潔にするために削除した他の行も出力にあります。

OSID     Special thread type  

15 26ec GC SuspendEE
15 3174 GC

GCとGCSuspendedEEの違いは何ですか

4

1 に答える 1

2

サーバー タイプの GC では、複数の GC スレッド (プロセッサごとに正確に 1 つのスレッド) を持つことができます。GC スレッドがオブジェクトを安全に移動できるように、スレッドの 1 つが CLR 実行エンジン (EE) を停止した場合のサーバー GC の動作方法。EE を停止するスレッドは 1 つだけであり、GC スレッド #0 は常にこれを行います。同じスレッドが、GC サイクルの完了後に EE を再開する責任があります。

出力に「GC SuspendEE」が存在することは、次の!threads -special2 つのことを意味 します。

  1. これは GC スレッド #0 です
  2. GC サイクルは現在実行中です。完了すると、SuspendEE フラグはこのスレッドからクリアされます。
于 2011-10-17T19:43:49.430 に答える