操作系统实验(二)线程的同步

线程的同步姓名:蒙吉 学号:20072411603实验名称: 线程的同步实验目的:1)进一步掌握Windows系统环境下线程的创建与撤消。 2)熟悉Windows系统提供的线程同步

线程的同步 20072411603 姓名:蒙吉学号: 实验名称: 线程的同步 实验目的: 1Windows )进一步掌握系统环境下线程的创建与撤消。 2WindowsAPI )熟悉系统提供的线程同步。 3WindowsAPI )使用系统提供的线程同步解决实际问题。 实验准备知识: 1WaitForMultipleObject() )等待一个对象:用于等待一个对象。 2WaitForMultipleObject() )等待多个对象:在指定时间内等待多个对象,等 WaitForSingleObject() 待的对象与相同。 3CreateSemaphoreOpen )信号量对象:创建信号量();打开信号量 SemaphoreReleasesemaphore ()增加信号量()。 实验内容: 完成主、子两线程之间的同步,要求子线程先执行。在主线程中使用系统调用 CreatThread ()创建一个子线程,主线程创建了线程后进入阻塞状态,直到了线程运行完毕 后唤醒主线程。 实验要求: WaitForMultipleObject()WaitForSingleObject() 能正确使用等待对象或及信号量 CreateSemaphoreOpenSemaphoreReleasesemaphore 对象:()::()等系统调用,进一步理 解线程的同步。 //Semaphore.cpp:definestheentrypointfortheconsoleapplecation. #include"stdafx.h" #include"semaphore1.h" #ifdef_DEBUG #definenewDEBUG_NEW #undefTHIS_FILE staticcharTHIS_FILE[]=_FILE_; #endif ///////////////////////////////////////////////////////////////////////////// //Theoneandonlyapplicationobject CWinApptheApp; usingnamespacestd; staticHANDLEh1; staticHANDLEhHandle1=NULL; voidfunc(); int_tmain(intargc,TCHAR*argv[],TCHAR*envp[]) { intnRetCode=0; DWORDdwThreadID1; DWORDdRes,err; 1

腾讯文库操作系统实验(二)线程的同步