Repository navigation
g1 G1_Conc
ceragon edited this page Dec 7, 2021
·
1 revision
- 声明位于 g1ConcurrentMark.cpp
G1ConcurrentMark::G1ConcurrentMark(G1CollectedHeap* g1h,
G1RegionToSpaceMapper* prev_bitmap_storage,
G1RegionToSpaceMapper* next_bitmap_storage){
// 省略代码
_concurrent_workers = new WorkGang("G1 Conc", _max_concurrent_workers, false, true);
_concurrent_workers->initialize_workers();
}
- 该线程和 GC Thread 同样属于 WorkGang 对象的子线程,所以可以参考那部分内容
- 和 GC Thread 也一样,run方法会在下面的方法处等待新任务的到来
WorkData GangWorker::wait_for_task() {
return gang()->dispatcher()->worker_wait_for_task();
}
WorkData worker_wait_for_task() {
return WorkData(_task, worker_id);
}| 任务名称 | 位置 | 备注 | 解析 |
|---|---|---|---|
| G1ClearBitMapTask | G1ConcurrentMark::clear_bitmap | ||
| G1CMConcurrentMarkingTask | G1ConcurrentMark::mark_from_roots | ||
| G1RebuildRemSetTask | G1RemSet::rebuild_rem_set | ||
| G1CMRootRegionScanTask | G1ConcurrentMark::scan_root_regions |