1. A computer implemented method for managing garbage collection, the computer implemented method comprising: granting a lock to a thread requesting the lock; responsive to granting the lock, identifying whether the thread is one of a set of garbage collection threads; responsive to identifying the thread is one of the set of garbage collection threads, initiating a garbage collection state; responsive to detecting the garbage collection state, determining whether to change a priority of the thread identified using a policy comprising predetermined criteria including what threads are currently executing, what memory ranges are being accessed, and what processes are executing; responsive to meeting the predetermined criteria, increasing a priority of each garbage collection thread identified in the set of garbage collection threads, wherein increasing the priority of each garbage collection thread in the set of garbage collection threads further comprises: paging in other ones of the set of garbage collection threads, including expected data area accesses for the other ones of the set of garbage collection threads; and paging in expected data area accesses for the thread identified; responsive to detecting the garbage collection state, decreasing a priority of each thread in a set of non-garbage collection threads.