每个.net程序都运行在一个完全独立的CLR实例上,每个CLR都有一个线程池,当然一个进程也可以加载多个CLR。
请问这句话说的是对的吗?
还有这三者又有什么关系?
clr是指应用程序域吗?
clr 不是 公共语言运行库吗?
@~雨落忧伤~: 对啊.你都知道是库了.为什么会说 CLR实例
不对,https://www.cnblogs.com/HQFZ/p/4638239.html
就是不了解 clr 与 进程 和 线程 的关系
CLR的作用是把不同的语言例如c#,VB等等编译出来的程序集,转换成机器可以执行的代码,不同的托管程序用的都是一个CLR。
就是不了解 clr 与 进程 和 线程 的关系
如果把clr当作vmware这样的虚拟机来理解就容易理解些了,如果你想在vmware中打开visual studio(类比:如果您想运行一个.net程序),首先要启动虚拟机(类比:启动一个进程加载clr),然后在虚拟机中打开visual studio(类比:在clr中运行.net程序,只不过这是由clr自动完成的),visual studio运行时所需的cpu与内存是由虚拟机分配的(类比:.net程序使用的线程是由clr从线程池中分配的)
“每个.net程序都运行在一个完全独立的CLR实例上”,这个是不对的,比如多个asp.net站点可以使用同一个应用程序池
也就是 一个进程也可以加载多个CLR 这句话 也是不对的