Хотя я только что понял, что не задавался вопросом, как GC работает в случае многопоточности. Помню, что ГЦ блокирует тот поток, где потребовалась сборка или фрагментация. А вот как это работает с точки зрения синхронизации - хз, надо почитать где-нибудь