- 56
- 0
- 约7.41千字
- 约 11页
- 2021-01-13 发布于山东
- 举报
PV 操作(哲学家问题)
给每个哲学家编号,规定奇数号的哲学家先拿他的左筷子,然后再去拿他的右筷子;而偶数号的哲学家则相反。这样总可以保证至少有一个哲学家可以进餐。
#include windows.h
#include iostream
#include process.h
#include cstdlib
#include ctime
using namespace std;
DWORDWINAPIphilosopher(
LPVOIDlpParameter);
void thinking( void eating( void waiting(
int );
int );
int );
void print( int , const char *);
全局变量
CRITICAL_SECTIONcrout; // 这个变量用来保证输出时不会竞争
CRITICAL_SECTIONfork[5]; // 定义五个临界变量,代表五更筷子
int main( int argc , char * argv [])
{
HANDLEhthread[5];
int i;
int arg[5];
int count = 5;
long a=0;
unsigned long retval;
InitializeCriticalSection(crout);
初始化临界变量
for (i
原创力文档

文档评论(0)