これらは, G1CollectedHeap 使用時における Garbage Collection 処理用の補助クラス. より具体的に言うと, Java プログラムの実行と並行(concurrent)に Marking 処理を行うクラス (See: here for details).
G1GC アルゴリズムを補佐するスレッドクラス(ConcurrentGCThreadクラス). このクラスは, Concurrent marking 処理を行う (See: here for details).
(なおコメントには, CMS からコピーしてきたものでまだ作成中(under construction), みたいなことが書いてあるが...)
((cite: hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.hpp))
// The Concurrent Mark GC Thread (could be several in the future).
// This is copied from the Concurrent Mark Sweep GC Thread
// Still under construction.
((cite: hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.hpp))
class ConcurrentMarkThread: public ConcurrentGCThread {
各 ConcurrentMark オブジェクトの _cmThread フィールドに(のみ)格納されている (「各」と言っても1つしかいないが...).
ConcurrentMark::ConcurrentMark() 内で(のみ)生成されている.
ConcurrentMarkThread オブジェクト自体は 1インスタンスしか存在しないが, 実際の処理は WorkGang (や G1RefProcTaskExecutor) 経由でマルチスレッド化される (See: here for details).
See: here for details
ConcurrentMarkThread クラス内で使用される補助クラス.
Initial marking pause 処理を行うための Closure クラス (See: here for details).
((cite: hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp))
class CMCheckpointRootsInitialClosure: public VoidClosure {
ConcurrentMarkThread::run() 内で(のみ)使用されている (See: here for details).
なお, 使用する際は VM_CGC_Operation と併せて使用する (See: VM_CGC_Operation).
See: here for details
ConcurrentMarkThread クラス内で使用される補助クラス.
Final marking pause 処理を行うための Closure クラス (See: here for details).
((cite: hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp))
class CMCheckpointRootsFinalClosure: public VoidClosure {
ConcurrentMarkThread::run() 内で(のみ)使用されている (See: here for details).
なお, 使用する際は VM_CGC_Operation と併せて使用する (See: VM_CGC_Operation).
See: here for details
ConcurrentMarkThread クラス内で使用される補助クラス.
Live Data Counting & Cleanup 処理を行うための Closure クラス (See: here for details).
((cite: hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp))
class CMCleanUp: public VoidClosure {
ConcurrentMarkThread::run() 内で(のみ)使用されている (See: here for details).
なお, 使用する際は VM_CGC_Operation と併せて使用する (See: VM_CGC_Operation).
See: here for details
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.