Windows编程--线程的基本知识

进程是由两部分构成的 一个是进程对象,一个是地址空间。线程也有两个部分组成: 一个是线程的内核对象,一个线程栈。 

 

进程是不活泼的,进程从来不所选任何东西,它只是线程依存的地方。线程在它的进程空间执行代码。并在进程的地址空间中对操作。

CreateThread函数 (是用来创建线程的Windows函数。不过,如果你正在编写C/C++代码,决不应该调用CreateThread。相反,应该使用VisualC++运行期库函数_beginthreadex

HANDLE CreateThread(
LPSECURITY_ATTRIBUTES psa,
DWORD cbStack,
LPTHREAD_START_ROUTINE lpStartAddr,
LPVOID lpvThreadParam,
DWORD fdwCreate,
LPDWORD pdwThreadID
);

参数说明:

psa

指向SECURITY_ATTRIBUTES结构的指针。传递NULL,为线程的内核对象的默认属性。设定为SECURITY_ATTRIBUTES结构。

cbStack

用于高度线程可能将多少地址空间用于它自己的栈。(注:这个栈的空间是在进程空间里的。

lpStartAddr

用于指明想要新线程执行的线程的地址(线程函数名)。

pvParam

与原来传递给CreateThread的pvParam参数相同。唯一做的事是在线程启动执行时将该数传递给线程函数。可以是数字值。也可以是一个数据结构的指针。

fdwCreate

设定用于控制创建消防坦克的其他标志,有两个值0立即进行调度),

 CREATE_SUSPENDED(系统可以完整地创建线程并对它进行初始化,介是要暂停该线程的运行,线程就无法进行调度) 不常用。

pdwThreadID

它必须是DWORD的一个有效地址,使用这个地址来存放系统分配给新线程的ID.

FangSH

2010-12-27

原文地址:https://www.cnblogs.com/fangshenghui/p/1926276.html