Да, существуют разные такие алгоритмы.
Самый простой в реализации алгоритм Eden / Young-Generation, который можно запустить одновременно, - это просто использовать несколько Edens, а также кучи Gen 1.В зависимости от того, какой поток готов (в настоящее время это не «сбор копий», то есть «копирование всего, на что ссылаются, затем переключение указателя на новую память»), этот поток ответит указателем на объект;Потоки могут определить, к какой куче Eden или Gen 1 принадлежит объект, сравнивая указатели с min / max-адресами этих куч.
Вы также можете реализовать параллельную копию одной кучи: создайте пул потоков, и всякий раз, когда необходимо выполнить сбор копий, присваивайте часть диапазона адресов каждому потоку.
Если вам нужна более конкретная идея, просто специализируйте свой вопрос.