当前位置: 首页 > news >正文

1_03_详解.NET公共语言运行时

1_03_详解.NET公共语言运行时

Net核心组件

1、CoreCLR 最核心的 公共语言运行时(C++实现)

Fromwork也有CLR,core是重写了,但基本是一致的

组成部分

中间代码解析:第一个职责就是执行net程序,与c++的原生语言是有很大区别的

特定硬件的机器码,调用操作系统接口,只能在某一个特定平台执行

net包含的不是机器码,是中间代码,不依赖平台的,是跨平台的

1、公共语言运行时会在执行net程序时,解析中间代码,找到对应的模块、类型、成员、方法等,翻译成目标平台的机器码,在运行期间被CLR翻译成了原生程序,在运行时变的  

对应的元数据,

类型信息:支持我们反射,类型安全

GC信息:垃圾回收

异常信息:支持异常处理

 

中间代码是不能被目标平台所执行的,比如windows是不能直接执行的,由CLR翻译执行

X86,ARM,编译成不同的机器码

1、JRT:Just In Time 即时编译器,变成成平台最高效的代码,不是C#语言的编译器,是中间代码RL的编译器

 

2、类型安全:也是由CLR保证的,保证对象类型一定正确

c语言,int类型指针,转换成通用指针类型void*==》传递到其它地方,就无法判断到底是int还是long,忘掉原始类型了,如果long转换为int就会产生数据精度丢失,还不触发异常,数据错误

 

net中,String类型转换成Object,传到其它地方,其它地方还可以通过GetType来判断真实类型到底是啥,如果abc转换成123肯定会触发异常,类型安全

 

公共语言运行时,为每一个对象保留类型信息,在转换的时候判断是否合法

公共语言运行时管理的对象,就被称之为托管对象,泛型,类型安全的

 

3、线程管理

每个平台的操作系统都提供了线程机制,可以让计算机充分利用计算机的资源,

但是CLR对原生的线程以及同步对象 进行了包装

我们可以在net里面对net里面的线程对象,用我们封装好的友好的线程管理

不需要操心不同平台的处理机制,而是用CLR处理不同平台的多线程处理

线程有两种:1、由公共语言运行时管理的线程,叫做托管线程,是假线程,net里面的线程,不是真线程,虚拟线程,托管代码RL需要在托管线程里面运行,

配合垃圾回收机制

真实的物理线程由公共语言运行时翻译,翻译之后调用真正的线程

net开发的时候都是托管线程,并不是真正的线程

 

GC垃圾回收,公共语言运行时提供的,可以在不需要的时候自动释放

有些语言没有垃圾回收机制,那么开发者需要手动确定在何时释放分配的资源

太早,太晚都有问题

GC会自动监控无效的对象执行销毁操作,内存回收整理

只能回收通过CLR分配的托管对象,非托管代码中分配的非托管资源,仍然需要开发者手动释放

什么叫非托管?比如打开一个文件==》必须经过系统API===》文件句柄

文件对象是c#的,文件句柄是属于系统的,属于非托管的,不在当前类

需要手动释放

net也对一些常用的非托管资源使用了托管的包装代码

虽然我们关闭了,我们并不是使用系统的API,而是使用的net封装好托管的方法,帮我们关闭文件句柄

 

最基础最底层的

没有CLR,net啥也不是

 

http://www.jsqmd.com/news/289310/

相关文章:

  • 图论专题(十五):BFS的“状态升维”——带着“破壁锤”闯迷宫 - 详解
  • 2026新加坡留学中介推荐:为什么抖音杨惨惨留学(迪格睿教育集团)是您的明智之选?
  • 2026年沈阳服务好的新初一补习学校有哪些,新高一补习/补课/新初一补课/新初一补习/成绩提升,新初一补习冲刺班推荐榜单
  • 评测NMN哪个牌子好推荐榜:W+端粒塔领跑2026抗衰十大NMN排行榜评测
  • resnet -> HC -> mHC
  • 俄罗斯音乐留学申请机构推荐:致俄如何用8年积累与真实案例精准导航艺术之路
  • 面向高速、远距离传输应用的机器视觉数据接口(以Vieworks为例)
  • 2025年烫金机选购指南:信誉厂商深度解析,有实力的烫金机生产厂家博美印刷满足多元需求
  • 莫斯科谢东诺夫第一医科大学中介机构为什么选致俄:专业领航,护佑未来仁医之路
  • CUDA结构是什么
  • SQL 注入攻防全攻略:开发者必学的数据库安全防护技巧
  • 渗透测试必备工具进阶技巧:高效提升漏洞挖掘效率,一篇文章带你从零基础入门到精通!
  • CUDA的最新稳定版本是13.1
  • cuda 中__restrict__作用
  • d3
  • 修改归档模式
  • 2026山东最新数据资产评估机构top5推荐!潍坊等地专业数据资产评估公司权威榜单发布,资质技术双优助力价值评估.
  • 详细介绍:Docker:Docker image常用命令使用及实操
  • IntelliJ IDEA 2026.1 EAP 发布!拥抱 Java 26,Spring Boot 4 深度支持!
  • 2026年316L不锈钢板厂家推荐报告:第三方视角下的优质供应商评估及选择指南
  • 2025年非遗膏方厂家口碑排行:消费者信赖的品牌,阿胶糕/阿胶类产品/膏方类产品/阿胶/阿胶类/膏方/非遗膏方非遗膏方定制口碑推荐
  • 探寻2026年靠谱中空板印刷机制造商,这些品牌值得一看,行业内有实力的中空板印刷机生产商10年质保有保障
  • ST LSM6DSO IMU芯片介绍
  • 从月销17万案例拆解九尾狐AI的企业级培训架构设计与落地实践
  • 马可波罗 item_get - 获取商品详情接口对接全攻略:从入门到精通
  • 2026最新Anaconda超详细安装教程(附安装包)
  • 自动化测试:操作自动化测如何实现用例设计实例
  • iPhone 网络调试的过程,请求是否发出,是否经过系统代理,app 绕过代理获取数据
  • 接口自动化测试一点总结
  • Web安全 | EmpireCMS漏洞常见漏洞分析及复现