应用程序域

应用程序域通常简称为AppDomain,可以视为一种轻量级进程。
一个Windows进程内可以包含多个AppDomain。
AppDomain这个概念的提出是为了实再在一个物理服务器中承载多个应用程序。
Asp.Net利用AppDomain在同一个进程内承载了多组Web应用程序就是一个例子。实际上微软曾进行过在单一进程内承载多达1000个简单Web应用程序的压力测试.
使用AppDomain所获行的性能优势主要体现在两方面:
创建AppDomain所需要的系统资源比创建一个Windows进程更少.
同一个Windows进程内所承载的AppDomain之间可以互相共离资源,如CLR、基本.NET类型、地址空间以及线程。
当一个程序集被执行时,CLR将自动为其创建一个默认的AppDomain。每个AppDomain都有一个名字,而默认AppDomain的名字就是所执行的程集的名称(包括.exe扩展名)。
如果一个程序集被多个AppDomain所加载,那么有两种可能。
第一种可能:CLR将多次加载该程序集,为进程中的每一个AppDomain分别加载一次。
第二和可能:CLR在所有AppDomain之外只加载一次该程序集,之后该程序集可能补同一个进程内所有AppDomain使用.这程方式加载的程序集称为是域无关(domain neutral) 的.


原文地址:https://www.cnblogs.com/skyblue/p/1119170.html