Alguns idiomas, por exemplo, java, introduziram um GC de baixa pausa.
Esses GC podem fazer a maior parte do trabalho sem fazer uma pausa no mundo inteiro. Obviamente, esse é um problema bastante difícil, pois exige a análise da memória quando o thread está sendo modificado, resultando em dados que podem ser usados no início do processo e não mais quando ele termina ou em dados que parecem ser lixo, mas porque o a referência foi movida na memória e nunca apareceu para onde o GC estava olhando.
Então, basicamente, qual é o algoritmo por trás disso?
Trabalhos de pesquisa ou link de artigo realmente técnico seriam considerados uma resposta válida, pois esse tópico é realmente técnico.