分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/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
分配而来的,因为线程并不拥有它自己的地址空间。然后系统将两个值写入新线程的堆栈的上
端(线程堆栈总是从内存的高地址向低地址建立)。写入堆栈的第一个值是传递给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