全文预览

司机与售票员-信号量操作

上传者:upcfxx |  格式:doc  |  页数:15 |  大小:328KB

文档介绍
页的物理存储以准备栈, 保护页设置为 PAGE_READWRITE ,第2 页设为 PAGE_GUARD 5lpStartAddr 和 lpvThread 值被放在栈顶,使它们成为传送给 StartOfThread 的参数 6把 context 结构的栈指针指向栈顶(第 5 步)指令指针指向 startOfThread 函数 MSDN 中 CreateThread 原型: HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, DWORD dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId); lpThreadAttributes : 指向 SECURITY_ATTRIBUTES 型态的结构的指针。在 Windows 98 中忽略该参数。在 Windows NT 中,它被设为 NULL ,表示使用缺省值。 dwStackSize ,线程堆栈大小,一般=0 ,在任何情况下, Windows 根据需要动态延长堆栈的大小。 lpStartAddress , 指向线程函数的指针, 形式:@ 函数名, 函数名称没有限制, 但是必须以下列形式声明: DWORD WINAPI ThreadProc (LPVOID lpParam) ,格式不正确将无法调用成功。 lpParameter :向线程函数传递的参数,是一个指向结构的指针,不需传递参数时, 为 NULL 。 dwCreationFlags :线程标志, 可取值如下 CREATE_SUSPENDED : 创建一个挂起的线程 0 :创建后立即激活。 lpThreadId: 保存新线程的 id。

收藏

分享

举报
下载此文档