www.pudn.com > philosphi.rar > philosphi.cpp


#include  
#include 
#include  
 
 
 
#define N 5 /* 哲学家的个数 */ 
#define P(S) WaitForSingleObject(S, INFINITE) // 定义Windows下的P操作 
#define V(S) ReleaseSemaphore(S, 1, NULL)  // 定义Windows下的V操作 
 
 
 
typedef HANDLE Semaphore; // 信号量的Windows原型 
HANDLE  hThread[N];     // 线程计数 
Semaphore S[N];         // N根筷子, N个信号量 
 
 
 
 
// 对每个哲学家的线程 
DWORD WINAPI Philosopher(LPVOID para) 
{ 
	// i表示第i个哲学家 
	int i = *(int *)para, j; 
	int period = 100; 
 
	// j只是用来打印缩进用 
	char s[10] = ""; 
	for (j=0; j