- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1207122113实验五线程的创建与撤销
《操作系统 》实验报告
实验序号:05 实验项目名称:线程的创建与撤销
学 号 1207122125 姓 名 林勇 专业、班 12软件金融1班 实验地点 1-418 指导教师 李远敏 实验时间 14.9.16 一、实验目的及要求
(1) 熟悉Windows系统提供的线程创建与撤销系统调用。
(2) 掌握Windows系统环境下线程的创建与撤销方法。
二、实验设备(环境)及要求
(1) 一台WindowsXP操作系统的计算机。
(2) 计算机装有Microsoft Visual Studio C++6.0专业版或企业版。
(3)能正确使用CreatThread()、ExitThread()及Sleep()等系统调用,进一步理解进程与线程理论。
三、实验内容与步骤
内容:
使用系统调用CreatThread()创建一个子线程,并在子线程序中显示:Thread is Runing!。为了能让用户清楚地看到线程的运行情况,使用Sleep()使线程挂起5s,之后使用ExitThread(0)撤销线程。
本实验在WindowsXP、Microsoft Visual C++ 6.0环境下实现,利用Windows SDK(System Development Kit)提供的API(Application Program Interface,应用程序接口)完成程序的功能。实验在WindowsXP环境下安装Microsoft Visual C++ 6.0后进行,由于Microsoft Visual C++ 6.0是一个集成开发环境,其中包含了Windows SDK所有工具和定义,所以安装了Microsoft Visual C++ 6.0后不用特意安装SDK。实验中所有的API是操作系统提供的用来进行应用程序开发的系统功能接口。
步骤:
首先启动安装好的Microsoft Visual C++ 6.0。
在Microsoft Visual C++ 6.0环境下选择File→New命令,然后在Project选项卡中选择Win32 Console Application建立一个控制台工程文件。
由于CreatThread()等函数是Microsoft Windows操作系统的系统调用,因此选择An application that supports MFC,之后单击Finish按钮.
之后将打开Microsoft Visual C++ 6.0编辑环境,按本实验的要求编辑C程序,之后编译、链接并运行该程序即可。
四、实验结果与数据处理
源代码如下:
CWinApp theApp;
using namespace std;
void ThreadName1();
static HANDLE hHandle1=NULL; //用于存储线程返回句柄的变量。
DWORD dwThreadID1; //用于存储线程标识符的变量。
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
int nRetCode = 0;
hHandle1 = CreateThread( (LPSECURITY_ATTRIBUTES) NULL,
0,
(LPTHREAD_START_ROUTINE) ThreadName1,
(LPVOID) NULL,
0, dwThreadID1 );
Sleep(5000);
CloseHandle(hHandle1);
ExitThread(0);
return nRetCode;
}
void ThreadName1()
{
printf(Thread is Runing!\n);
}
运行结果如图:
五、总结与体会
在Windows系统中进程是资源的拥有者,线程是系统调度的单位。进程创建后,其主线程也随即被创建。在该实验中,又创建了一个名为ThreadNamel的子线程,该子线程与主线程并发的被系统调度。为了能看到子线程的运行情况,在主线程创建子线程后,将主线程挂起5s以确保子线程能够运行完毕,之后调用Exit Thread(0)将所有线程(包括主、子线程序)撤销。
六、教师评语
签名:
日期: 成绩
文档评论(0)