title: Why do garbage collectors freeze execution?
body: <p>I was thinking about garbage collection on the way home, and I began wondering, why does the garbage collector totally freeze execution of a program? Personally I would have designed it to block any threads which try to allocate a new object, but threads which were running would be left alone.
  I can't imagine any situation where this would be a problem compared to how a garbage collector currently works.</p>