In G1 we tend to want to perform some operations concurrently to take them off the STW pauses. Such operations include:
1) reclaim regions found to be empty during cleanup (current)
2) sample RSet length of young regions (current)
3) reclaim collection set regions (future, see 6868854)
Right now, the way we do such operations is ad-hoc (1 is done piggy-backed on the main concurrent marking thread, 2 is done piggy-backed on the concurrent refinement threads). It'd be helpful to have a framework to be able to easily schedule concurrent operations in G1 to deal with such operations in a uniform manner.