私はこれらの図を次のように見ました:http://msdn.microsoft.com/en-us/library/ee787088.aspx 数年の間、私はそれらを理解したと思いました。スレッドは実際にはできませんでした。
たとえば、GCが専用スレッドではなく、GCをトリガーしたスレッドで実行されている場合。
「ガベージコレクション中に何が起こるか」という部分を見てください。
赤い矢印を参照してください。これは、ユーザースレッドで実行されているGCであると想定されています。
したがって、スレッドで実行されるワーカーメソッドがあり、そのワーカーがループを実行するとします。そして、ある時点で、GCはkciksを実行します。
私の質問は、GCが開始してから終了するまで、スレッドに何が起こるのかということです。
- コンテキストスイッチはありますか?
- GCを実行するために、新しいスレッドコンテキストが割り当てられ、新しいスタックがロードされますか?
- 他の誰かのスレッドで実行されているGCコードがどれほど正確か(私にとって最も不可解です)...スレッドにスタックが割り当てられ、コードがロードされます..GCコードがどのように実行されたか-私はこの部分を想像することさえできません。