23实验三:线程的互斥_第1页
23实验三:线程的互斥_第2页
23实验三:线程的互斥_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学号: 150705040学生姓名:张鹏实验地点:数计学院 407 实验室实验课时:课程名称:3 学时计算机操作系统实验器材:计算机实验名称:2.3 实验三:线程的互斥、实验目的1、进一步掌握 windows 系统环境下线程的创建与撤销。2、熟悉线程互斥 API3、使用线程互斥 API 解决实际问题。、实验环境及工具Windows 7 操作系统, VC6三、实验内容能正确使用临界区对 象, 临界区对象( CriticalSection )包括初始化临界区 ( InitializeCriticalSection ( )、 进 入 临 界 区 ( EnterCriticalSection() )、

2、 退 出 临 界 区 ( LeaveCriticalSection ()及删除临界区 (DeleteCriticalSection() ,进一步理解线程的互斥。四、实验步骤#include stdafx.h #include Mutex.h#ifdef _DEBUG#define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE = _FILE_;#endif/ The one and only application objectCWinApp theApp;using namespace std;static int count=5;

3、 static HANDLE h1; static HANDLE h2;LPCRITICAL_SECTION hCriticalSection; CRITICAL_SECTION Critical;void func1();void func2();int _tmain(int argc, TCHAR* argv, TCHAR* envp)int nRetCode = 0;DWORD dwThreadID1,dwThreadID2; hCriticalSection=&Critical;InitializeCriticalSection(hCriticalSection);h1=CreateT

4、hread(LPSECURITY_ATTRIBUTES)NULL,0,(LPTHREAD_START_ROUTINE)func1,(LPVOID)NULL,0,&dwThreadID1); if(h1=NULL)printf(Thread1 create Fail!n);else printf(Thread1 create Success!n);h2=CreateThread(LPSECURITY_A TTRIBUTES)NULL,0, (LPTHREAD_START_ROUTINE)func2, (LPVOID)NULL, 0,&dwThreadID2);if(h2=NULL)printf(

5、Thread2 create Fail!n);else printf(Thread2 create Success!n);Sleep(1000);CloseHandle(h1);CloseHandle(h2);DeleteCriticalSection(hCriticalSection);ExitThread(0);return nRetCode;void func2()int r2;EnterCriticalSection(hCriticalSection);r2=count;_sleep(100);r2=r2+1;count=r2;prin tf(co unt in fun c2=%dn,

6、co un t); LeaveCriticalSecti on( hCriticalSect ion);void fun c1()int r1;En terCriticalSectio n(hCriticalSectio n); r1=co unt;_sleep(500);r仁 r1+1;coun t=r1;prin tf(co unt in fund =%dn,co un t); LeaveCriticalSecti on( hCriticalSect ion);C:Mutex&eb u gM Ihr-eadl create Success? Thread2 create Success? count in fund =6counc in fwnc2=7Press auhy key to continue五、实验结论1、进一步巩固和掌握第一二次实验线程的创建于撤销和线程的同步的一些基本函数的运用 方法和各自的功能的基础上了解线程的互斥。2、 对初始化临界区InitializecritiCalSection ()、进入临界区 EnterCriticalSectio

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论