操作系统原理实验 线程的创建与撤销1.pdf
-1-
上海电力学院
计算机操作系统原理
实验报告
题目:线程的同步
院系:计算机学院
专业年级:信息安全2010级
学生姓名:李鑫学号:
同组姓名:无
2012年10月17日
上海电力学院
-2-
实验报告
课程名称计算机操作系统原理实验项目线程的创建与撤销
姓名李鑫学号班级2010251班专业信息安全
同组人姓名无指导教师姓名徐曼实验日期2012/10/17
实验目的和要求:
1、进一步掌握Windows系统环境下线程创建与撤销。
2、熟悉Windows系统提供的线程同步API。
3、使用Windows系统提供的线程同步API解决实际问题。
实验原理与内容
完成主、子两个线程之间的同步,要求子线程先运行。在线程中使用系统调
用CreateThread()创建一个子线程。主线程创建子线程后进入阻塞状态,直
到子线程运行完毕后唤醒主线程。
实验平台与要求
操作系统:Windows2000或WindowsXP
实验平台:VisualStudioC++6.0
实验步骤与记录
1、启动安装好的VisualC++6.0。
2、选择File-New,新建Win32ConsoleApplication控制台程序。
3、由于CreateThread()等函数是MicrosoftWindows操作系统的系统调用,因此选择An
applicationthatsupportsMFC,之后单击Finish按钮。
4、打开编辑环境后,编辑程序,并且编译、链接并运行该程序。
5、
6、
实验分析与结论
在Windows系统中,进程是资源的拥有者,线程是系统调度的单位。进程创建后,其主
-3-
线程也随即被创建。通过调用CreateThread()函数懂得了如何创建线程,而主main程序
是我们的主进程,函数ThreadName1()是我们的线程函数。通过调用线程函数,我们输出
了想要的语句。
主要源代码:
//函数和变量声明
voidThreadName1();
staticHANDLEhHandle1=NULL;
DWORDdwThreadID1;
//创建线程
hHandle1=CreateThread((LPSECURITY_ATTRIBUTES)NULL,
0,
(LPTHREAD_START_ROUTINE)ThreadName1,
(LPVOID)NULL,
0,
dwThreadID1);
Sleep(5000);
CloseHandle(hHandle1);
ExitThread(0);
//线程函数
voidThreadName1()
{
}
实验展望
1、如果想要传递参数,要通过CreateThread()函数的LPVOIDlpParameter
参数来传递,一个参数可以直接指定给lpParameter,而多个参数可以指
定一个指针给lpParameter