Tin học
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Mời các bạn tham khảo code bai tuan Hiền Triết cùng ăn

Go down

Mời các bạn tham khảo code bai tuan Hiền Triết cùng ăn Empty Mời các bạn tham khảo code bai tuan Hiền Triết cùng ăn

Bài gửi  phuong.ntt-08h1010074 13/5/2009, 22:27

Mời các bạn tham khảo code bai tuan Hiền Triết cùng ăn(tui sưu tầm từ các bạn khóa trước)
// Hientriet.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

#include <stdio.h>
#include <windows.h>

#define numPhilosophers 10

#define LEFT id
#define RIGHT (id+1)%numPhilosophers

HANDLE chopsticks[numPhilosophers];
char chState[numPhilosophers+1];
char phState[numPhilosophers+1];

void PhilosopherThread(int id){
while (1) {
// Suy nghi
Sleep(4000);
// Doi, do vay lay dua ben trai
phState[id]='d';
WaitForSingleObject(chopsticks[RIGHT], INFINITE);

chState[RIGHT]='0';
printf("- Chopsticks:\t%s\n Philosophers:\t%s\n\n", chState, phState);
Sleep(100);

// Roi lay dua ben phai
WaitForSingleObject(chopsticks[LEFT], INFINITE);
chState[RIGHT]='0';
// Bat dau an
phState[id]='a';
printf("- Chopsticks:\t%s\n Philosophers:\t%s\n\n", chState, phState);
Sleep(2000);
// An xong
phState[id]='-';
// Dat dua trai xuong
chState[RIGHT]='1';
ReleaseMutex(chopsticks[RIGHT]);
// Dat dua phai xuong
chState[LEFT]='1';
ReleaseMutex(chopsticks[LEFT]);
}
}
void main(){
HANDLE handles[numPhilosophers];
DWORD threadID; int i;

chState[numPhilosophers]='\0'; phState[numPhilosophers]='\0';

for (i=0; i<numPhilosophers; i++){
chState[i]='1'; phState[i]='-';
}
for (i=0; i<numPhilosophers; i++)
chopsticks[i]=CreateMutex(0, FALSE, 0);

printf("- Chopsticks:\t%s\n Philosophers:\t%s\n\n", chState, phState);

for (i=0; i<numPhilosophers; i++)
handles[i]=CreateThread(0,0,
(LPTHREAD_START_ROUTINE)PhilosopherThread,
(void *) i, 0, &threadID);
WaitForMultipleObjects(numPhilosophers, handles, TRUE, INFINITE);
for (i=0; i<numPhilosophers; i++) CloseHandle(chopsticks[i]);
}

phuong.ntt-08h1010074

Tổng số bài gửi : 137
Join date : 05/05/2009

Về Đầu Trang Go down

Về Đầu Trang

- Similar topics

 
Permissions in this forum:
Bạn không có quyền trả lời bài viết