|
操作系统实验进程同步--读者优先(2) #define W WRITER typedef strUCt _Person { HANDLE m_hThread; int m_nType; int m_nStartTime; int m_nWorkTime; int m_nID; }Person; Person g_Persons[MAX_PERSON]; int g_NumPerson = 0; long g_CurrentTime= 0; int g_PersonLists[] = { 1, R, 3, 5, 2, W, 4, 5, 3, R, 5, 2, 4, R, 6, 5, END, }; int g_NumOfReading = 0; HANDLE g_hReadSemaphore; HANDLE g_hWriteSemaphore; void CreatePersonList(int *pPersonList); bool CreateReader(int StartTime,int WorkTime,int ID); bool CreateWriter(int StartTime,int WorkTime,int ID); DWord WINAPI ReaderProc(LPVOID lpParam); DWORD WINAPI WriterProc(LPVOID lpParam); int main() { g_hReadSemaphore = CreateSemaphore(NULL,1,100,NULL); g_hWriteSemaphore = CreateSemaphore(NULL,1,100,NULL); // CreateSemaphore(NULL,FALSE,NULL); CreatePersonList(g_PersonLists); // Create All the reader and writers printf("Created all the reader and writer\n...\n"); g_CurrentTime = 0; while(true) { g_CurrentTime++; Sleep(300); // 300 ms printf("CurrentTime = %d\n",g_CurrentTime); } return 0; } void CreatePersonList(int *pPersonLists)
|