实验一进程的同步与互斥实验目的加深对进程概念的理解,明确进程和程序的区别。进一步认识并发执行的实质。(3)分析进程竞争资源现象,学习解决进程互斥的法。(4)了解Windows对进程管理的支持。二、实验类型观察/分析型。预习内容预习进程管理有关理论和VC++对进程管理的支持,包括进程的基本操作和经典的进程同步与互斥问题。实验要求本实验通过学习和分析三个简单的Windows线程编程编写一个简单的生产者/消费者问题实例程序。利用(1)和(2)中的Windows进程和线程创建法实现一个简单的读者,写者程序,读者将1~10十个数字依次填入临界资源区gData,当且仅当gData被读者消费后,写者才可以写入下一个数。实验代码#include""#include<>#include<>#include<>constintwriterNum=1;constintreaderNum=1;intgData=0;boolcontinu=true;HANDLEhmutex;HANDLEhfullsemaphore;HANDLEhemptysemaphore;DWORDWINAPIreader(LPVOIDlppara){ while(continu){ WaitForSingleObject(hemptysemaphore,INFINITE); WaitForSingleObject(hmutex,INFINITE); if(gData>=11){ continu=false; break; } Sleep(100); printf("readersgetsdata:%d\n",gData); printf("\n"); ReleaseMutex(hmutex); ReleaseSemaphore(hfullsemaphore,1,NULL); } returnNULL;}DWORDWINAPIwriter(LPVOIDlppara){ while(continu){ WaitForSingleObject(hfullsemaphore,INFINITE); WaitForSingleObject(hmutex,INFINITE); if(gData>=10){ continu=false; break; } Sleep(100); gData++; printf("writergetsdata:%d\n",gData); printf("\n"); ReleaseMutex(hmutex
实验一进程的同步与互斥 来自淘豆网m.daumloan.com转载请标明出处.