进程由进程对象,地址空间两部分构成;线程由线程的内核对象、线程栈构成,进程从来不执行任何东西,它只是线程依存的地方,线程在进程的地址控件中执行代码,并在进程的地址空间中对数据进行操作。
主线程的入口函数main wmain Winmain wWinmain
辅助线程
DWORD WINAPI ThreadFunc(PVOID pvParam)
{
DWORD dwResult = 0;
...
return(dwResult );
}
CreateThread 与 _beginthreadex
CreateThread :操作系统执行的创建线程函数。
_beginthreadex:CRT(C++运行时库) 内部调用CreateThread。
使用_beginthreadex原因:多线程情况下要使C C++程序能够正确运行,必须创建一个数据结构(tiddata),将其与创建的线程相关联,当运行C++运行时库时这些函数知道查看调用的线程数据库,不会对其他线程产生不好的影响。
线程身份识别
HANDLE GetCurrentThread();
返回调用线程内核对象的伪句柄,并不在句柄表中创建新句柄,线程内核对象的引用计数不变。当调用一个函数需要线程的句柄时可传递一个伪句柄,使函数执行它对线程的操作。
DuplicateHandle 将伪句柄转换为实句柄。(父线程给子线程传递句柄时 实句柄)


浙公网安备 33010602011771号