Conversation

The reason is that when doing a copying (moving) collection cycle to compact the heap, they need to intercept and handle writes from other threads to the portion of the heap they're currently in the process of moving. I don't know all the details of this in a modern GC though.
2