每个线程都有它自己的一组C P U寄存器,称为线程的上下文

本文介绍了线程如何拥有自己的CPU寄存器集,即线程上下文。当线程创建并开始执行时,系统会根据CREAT_SUSPENDED标志决定是否立即执行。BaseThreadStart函数是线程执行的起点,它会设置结构化异常处理帧,调用用户指定的线程函数,并在函数返回时调用ExitThread。线程不能从BaseThreadStart直接返回,否则会导致访问违规。

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.youkuaiyun.com/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                一旦内核对象创建完成,系统就分配用于线程的堆栈的内存。该内存是从进程的地址空间
分配而来的,因为线程并不拥有它自己的地址空间。然后系统将两个值写入新线程的堆栈的上
端(线程堆栈总是从内存的高地址向低地址建立)。写入堆栈的第一个值是传递给C r e a t e T h r e a d
的p v P a r a m参数的值。紧靠它的下面是传递给C r e a t e T h r e a d的p f n S t a r t A d d r参数的值。
每个线程都有它自己的一组C P U寄存器,称为线程的上下文。该上下文反映了线程上次运
行时该线程的C P U寄存器的状态。线程的这组C P U寄存器保存在一个C O N T E X T结构(在
Wi n N T. h头文件中作了定义)中。C O N T E X T结构本身则包含在线程的内核对象中。
指令指针和堆栈指针寄存器是线程上下文中两个最重要的寄存器。记住,线程总是在进程
的上下文中运行的。因此,这些地址都用于标识拥有线程的进程地址空间中的内存。当线程的
内核对象被初始化时, C O N T E X T结构的堆栈指针寄存器被设置为线程堆栈上用来放置p f n S t a r t -
A d d r的地址。指令指针寄存器置为称为B a s e T h r e a d S t a r t的未文档化(和未
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值