下载此文档

操作系统实验(三)线程的互斥.doc


文档分类:IT计算机 | 页数:约7页 举报非法文档有奖
1/7
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/7 下载此文档
文档列表 文档介绍
姓名:蒙吉学号:20072411603
实验名称:线程的互斥
实验目的:1)熟练掌握Windows系统环境下线程的创建于撤销。
2)熟悉Windows系统提供的线程互斥API。
3)使用Windows系统提供的线程互斥API解决实际问题。
实验准备知识:
临界区对象(Criticalsection)包括初始化临界区InitializecritiCalSection()、进入临界区EnterCriticalSection()、退出临界区LeaveCriticalSection()及删除临界区DeleteCriticalsection等API函数;互斥对象(Mutex)包括创建互斥对象(CreateMutex())、打开互斥对象(OpenMutex())、释放互斥条件(ReleaseMutex())API函数。
实验内容:
完成两个子线程之间的互斥,在主线程中使用系统调用CreateThread()创建两个子线程,并使两个子线程互斥的使用全局变量count。
实验要求:
能正确使用临界区对象,包括初始化临界区InitializecritiCalSection()、进入临界区EnterCriticalSection()、退出临界区LeaveCriticalSection()及删除临界区DeleteCriticalsection(),进一步理解线程的互斥。
源代码:
// : Defines the entry point for the console application.
//
#include ""
#include ""
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// The one and only application object
CWinApp theApp;
using namespace std;
static int count=5;
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=CreateThread((LPSECURI

操作系统实验(三)线程的互斥 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数7
  • 收藏数0 收藏
  • 顶次数0
  • 上传人xgs758698
  • 文件大小248 KB
  • 时间2018-11-10