.NET 线程,线程执行上下文

本文介绍了.NET中线程的组成,包括线程内核对象、线程环境块、用户模式栈和内核模式栈。同时,深入讨论了线程执行上下文,包括其包含的安全设置、宿主设置和逻辑调用上下文数据。执行上下文的流动会影响性能,阻止上下文流动在某些情况下可以提升性能,但需确保新线程不依赖原始上下文。
摘要由CSDN通过智能技术生成

NET目前的每一个线程对应的是windows系统的物理线程,每个线程都会包含一下一些要素:

1.线程内核对象(Thread kernel object),OS为系统中每一个线程分配初始化的数据结构,包含线程上下文Thread Context(一个内存区域包含CPU寄存器集合);

2.线程环境块(Thread Environment block),包含了线程的异常处理链首,线程每次进入try块,都会在链首插入一个节点,退出try块时,会从链中删除节点。还包含了一些其他的数据;

3.用户模式栈(user-mode stack),包含传给方法的局部变量和实参,以及方法的返回地址;

4.内核模式栈(kernel-mode stack),运用程序调用内核模式函数时,会使用内核模式栈,主要是处于安全的原因考虑,用户模式的代码传给内核模式的代码,会被从用户模式栈拷贝到内核模式栈中。


线程执行上下文(Execute context):每一个线程都关联了一个执行上下文数据结构。包括的东西有安全设置(压缩栈,Thread的principle属性和windows的身份 ),宿主设置以(System.Threading.HostExecutionContextManager)及逻辑调用上下文数据(System.Runtime.Remoting.Messaging.ExecutionContext)。线程执行代码的时候,有些操作会受到线程执行上下文的限制,例如安全设置的影响。理想情况下,在一个线程中调用另外一个线程,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值