Small parts of the code in the G1 Mark Sweep Full GC is parallel, one of those is the string and symbol table cleaning as well as the string dedup cleanup. They are currently run as two separate tasks which means the threads have to be spun up and joined two times.
These two tasks can be joined together and when doing this the cleanup done in the Remark phase of the concurrent cycle can also be unified to use the same code paths.
These two tasks can be joined together and when doing this the cleanup done in the Remark phase of the concurrent cycle can also be unified to use the same code paths.