資源簡介
有關銀行家算法,用C++實現,整個系統可以直接使用。

代碼片段和文件信息
#include?“sue.h“
int???????????????g_Readercount=0;??????//讀者數(全局變量)初始化為0
CRITICAL_SECTION??cs_WriteCs;???????//寫臨界區對象
CRITICAL_SECTION??cs_ReadCs;????????//讀臨界區對象
void?main(void)
{
FILE?*pFile=NULL;
if((pFile=fopen(“c:\\sue.txt““w“))/*建立一個新文本文件*/==NULL)
{
cout<<“Cannot?create?this?file!“< exit(0);?????//如果創建文件失敗則提示
}
????fclose(pFile);?//關閉文件
????InitializeCriticalSection(&cs_WriteCs);
????InitializeCriticalSection(&cs_ReadCs);???///初始化臨界區對象
????HANDLE?hThread[5];
????DWORD??IDThread[5];??/////創建線程////////
????for(int?i=0;?i<5;?i++)
{
if(i==0)
{
hThread[i]=CreateThread(NULL
?????????????????????????0
?(LPTHREAD_START_ROUTINE)AddThread
???????????????????????????????????????NULL
?0
??????????&IDThread[i]);?//添加記錄線程
}
else?if(i==1)
{
hThread[i]=CreateThread(NULL
?????????????????????????0
?(LPTHREAD_START_ROUTINE)DeleteThread
???????????????????????????????????????NULL
?0
?&IDThread[i]);?//刪除記錄線程?
}
else?
{
hThread[i]=CreateThread(NULL
?????????????????????????0
?(LPTHREAD_START_ROUTINE)ReadThread
?????????????????????????????????????(void?*)i
?0
?&IDThread[i]);?//讀文件線程
}
?????????if?(hThread[i]?==?NULL)???//線程創建失敗
????cout?<“CreateThread?error“?< ?????else
????cout?<“CreateThread:?“?< }
cout< ????
//等待線程結束
WaitForMultipleobjects(5hThreadTRUEINFINITE);
DeleteCriticalSection(&cs_WriteCs);
DeleteCriticalSection(&cs_ReadCs);????////刪除臨界區對象
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄??????????0??2004-12-16?13:15??ossue(VC++工程)
?????文件??????58368??2006-03-05?23:39??ossue(VC++工程)\ossue.ncb
?????文件????????253??2004-12-15?23:23??ossue(VC++工程)\sue.h
?????文件???????1348??2006-03-05?23:01??ossue(VC++工程)\ossue.plg
?????文件???????4389??2004-12-15?23:27??ossue(VC++工程)\ossue.dsp
?????文件????????533??2004-12-16?13:15??ossue(VC++工程)\ossue.dsw
?????目錄??????????0??2004-12-15?23:22??ossue(VC++工程)\Debug
?????文件???????1715??2004-12-16?13:19??ossue(VC++工程)\mult.cpp
?????文件???????5382??2004-12-16?13:22??ossue(VC++工程)\sue.cpp
?????文件??????????2??2006-03-05?23:01??ossue(VC++工程)\sue.txt
?????文件??????53760??2006-03-05?23:39??ossue(VC++工程)\ossue.opt
-----------?---------??----------?-----??----
???????????????125968????????????????????12
評論
共有 條評論