计算机操作系统实验指导.doc

  1. 1、本文档共179页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 windows的进程管理 2.1 实验一:线程的创建与撤销 2.1.1 实验目的 (1)熟悉windows系统提供的线程创建与撤销系统调用. (2)掌握windows系统环境下线程的创建与撤销方法. 2.1.2 实验准备知识 1.线程的创建 CeateThread()完成线程的创建.它在调用进程的地址空间上创建一个线程,执行指定的函数,并返回新建立的线程的句柄. 原型: HANDLE CeateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, DWORD dwStackSize, LPSECURITY_START_ROUTINE lpStartAddress, LPVOID lpparameter, DWORD dwCreationFlags, LPDWORD lpThreadId ); 参数说明: (1)lpThreadAttributes:为线程指定安全属性.为NULL时,线程得到一个默认的安全描述符. (2)dwStackSize:线程堆栈的大小.其值为0时,其大小与调用该线程的线程堆栈大小相同. (3)lpStartAddress:指定线程要执行的函数. (4)lpparameter:函数中要传递的参数. (5)dwCreationFlags:指定线程创建后所处的状态.若为CRRATE_SUSPENDED,表示创建后出于挂起状态,用ResumeThread()激活线程才可以执行.若该值为0,表示线程创建后立即执行. (6)lpThreadId:用一个32位的变量接受系统返回的线程标识符.若该值设为NULL,系统不返回线程标识符. 返回值: 如果线程创建成功,将返回线程的句柄;如果失败,系统返回NULL,可以调用函数GetLastError查询失败的原因. 用法举例: static HANDLE hHandle1=NULL; //用于存储线程返回句柄的变量 DWORD dwThreadID1; //用于存储线程标识符的变量 //创建一个名为ThreadName1的线程 hHandle1=CeateThread((LPSECURITY_ATTRIBUTES)) NULL 0, (LPSECURITY_START_ROUTINE)ThreadName1, (LPDWORD)NULL, 0,dwThreadID1); 2.撤销进程 ExitThread()用于撤销当前进程. 原型: VOID ExitThread( DWORD dwExitCode); //线程返回码 参数说明: dwExitCode:指定线程返回码,可以调用GetExitCodeThread()查询返回码的含义. 返回值: 该函数没有返回值. 用法举例: ExitThread(0); //参数0表示要撤销进程中的所有线程 3.终止线程 TerminateThread()用于终止当前线程.该函数与ExitThread()的区别在于,ExitThread()在撤销线程时将该线程所拥有的资源全部归还给系统,而TerminateThread()不归还资源. 原型: BOOL TerminateThread( HANDLE hHandle, //线程句柄 DWORD dwExitCode); //线程返回码 参数说明: (1)hThread:要终止线程的线程句柄. (2)dwExitCode:指定线程返回码,可以调用GetExitCodeThread()查询返回码的含义. 返回值: 函数调用成功,将返回一个非0值;若失败,返回0,可以调用函数GetLastError()查询失败的原因. 4.挂起线程 Sleep()用于挂起当前正在执行的线程. 原型: VOID Sleep(DWORD dwMilliseconds); 参数说明: dwMilliseconds;指定挂起时间,单位为ms(毫秒). 返回值: 该函数没有返回值. 5.关闭句柄 函数CloseHandle()用于关闭已打开的对象的句柄,其作用与释放动态申请的内存空间类似,这样可以释放系统资源,使线程安全运行. 原型: BOOL CloseHandle(HANDLE hObject); 参数说明: hObject:已打开对象的句柄. 返回值: 如果函数调用成功,则返回值为非0值;如果函数调用失败,则返回值为0.若要得到更多的错误信息,调用函数GetLastError()查询. 2.1.3实验内容 使用系统调用CreatThread()创建一个子线程,并在子线程中显示;Thread is Running!.为了能让用户清楚地看到线

文档评论(0)

jiulama + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档