为什么每个进程有一个GC和一个托管堆?

时间:2012-11-12 09:52:49

标签: .net memory-management garbage-collection

据我所知,在.NET中,每个进程有一个GC,每个进程有一个托管堆(它分为SOH和LOH)。

所以我对此有一些疑问:

  1. 如果我们在一个进程中有一些应用程序域,那么每个域将在其他域之间共享堆。安全吗?域之间如何分离?

  2. 当GC开始工作时,它会暂停工作线程。因此,如果一个应用程序域需要经常启动GC,它将影响其他不需要垃圾收集的域。同样,域之间是否存在0,1,2代的分离,或者存储在同一0代区域的不同域中0代的所有对象是否存在分离?

  3. 为什么每个进程而不是每个域实现GC和托管堆?

0 个答案:

没有答案