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