操作系统实验5线程的同步.doc

操作系统实验5线程的同步.doc

ID:57676108

大小:36.00 KB

页数:5页

时间:2020-08-31

操作系统实验5线程的同步.doc_第1页
操作系统实验5线程的同步.doc_第2页
操作系统实验5线程的同步.doc_第3页
操作系统实验5线程的同步.doc_第4页
操作系统实验5线程的同步.doc_第5页
资源描述:

《操作系统实验5线程的同步.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、《操作系统》实验报告实验序号:  5     实验项目名称:线程的同步学  号姓  名专业、班实验地点指导教师实验时间一、实验目的及要求(1)进一步掌握Windows系统环境下线程的创建与撤销。(2)熟悉Windows系统提供的线程同步API。(3)使用Windows系统提供的线程同步API解决实际问题。二、实验设备(环境)及要求一台装有WindowsXP或Winddows2003的机器(这里默认是WindowsXP).要求:能正确使用等待对象WaitForSingleObject()或WaitForMultipleObject()及信号量对象CreateSem

2、aphore()、OpenSemaphore()、ReleaseSemaphore()等系统调用,进一步理解线程的同步。三、实验内容与步骤完成主、子两个线程之间的同步,要求子线程先执行。在主线程中使用系统调用GreateThread()创建一个子线程。主线程创建子线程后进入阻塞状态,直到子线程运行完毕后唤醒主线程。四、程序调试(结果及分析)#include"stdafx.h"#include#includestaticHANDLEh1;//线程句柄staticHANDLEhHandle1=NULL;//信号量句柄voidf

3、unc();intmain(intargc,char*argv[]){intnRetCode=0;DWORDdwThreadID1;DWORDdRes,err;hHandle1=CreateSemaphore(NULL,0,2,"Semaphorename1");//创建一个信号量if(hHandle1==NULL)printf("SemaphoreCreateFail!");elseprintf("SemaphoreCreateSuccess!");hHandle1=OpenSemaphore(SYNCHRONIZE

4、SEMAPHORE_MODIFY_

5、STATE,NULL,"SemaphoreName1");//打开信号量if(hHandle1==NULL)printf("SemaphoreOpenFail!");elseprintf("SemaphoreOpenSuccess!");h1=CreateThread((LPSECURITY_ATTRIBUTES)NULL,0,(LPTHREAD_START_ROUTINE)func,(LPVOID)NULL,0,&dwThreadID1);//创建子线程if(h1==NULL)printf("Thread1createFail!");elsepri

6、ntf("Thread1createSuccess!");dRes=WaitForSingleObject(hHandle1,INFINITE);//主线程等待子线程结束err=GetLastError();printf("WaitForSingleObjecterr=%d",err);if(dRes==WAIT_TIMEOUT)printf("TIMEOUT!dRes=%d",dRes);elseif(dRes==WAIT_OBJECT_0)printf("WAIT_OBJECT!dRes=%d",dRes);elseif(dRes==WAIT

7、_ABANDONED)printf("WAIT_ABANDONED!dRes=%d",dRes);elseprintf("dRes=%d",dRes);CloseHandle(h1);CloseHandle(hHandle1);ExitThread(0);returnnRetCode;}voidfunc(){BOOLrc;DWORDerr;printf("NowInThread!");rc=ReleaseSemaphore(hHandle1,1,NULL);//子线程唤醒主线程err=GetLastError();printf("ReleaseSem

8、aphoreerr=%d",err);if(rc==0)printf("SemaphoreReleaseFail!");elseprintf("SemaphoreReleaseSuccess!rc=%d",rc);}五、总结与体会该实验完成了主、子线程的同步,主线程创建子线程后,主线程阻塞,让子线程先执行,等子线程执行完毕后,由子线程唤醒主线程。六、教师评语签名:日期:成绩

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。