[C#] Problem głodnych filozofów
Siema,
muszę zakodzić problem głodnych filozofów (lub czasami też się mówi 'problem pięciu filozofów'). Pokrótce wytłumaczę o co chodzi w tym problemie.
Mamy 5 filozofów przy okrągłym stole. Między każdą parą filozofów jest widelec, więc przy każdym filozofie są 2 widelce. Na samym środku jest miska ze spaghetti i aby ją zjeść trzeba użyć 2 widelców. Filozofowie nie rozmawiają ze sobą i każdy z nich chce się najeść ale oczywiście widelców dla wszystkich nie starcza, ponadto jak każdy weźmie np. lewy widelec to nastąpi zjawisko zakleszczenia. Generalnie trzeba rozwiązac problem tak aby każda się najadł i się nie zagłodził.
Jeżeli coś niejasno przedstawiłem to link tutaj: http://pl.wikipedia.org/wiki/Problem...filozof%C3%B3w
Algorytm może być taki:
1. Rzuć monetę, by wylosować lewą lub prawą stronę
2. Czekaj aż wylosowany widelec będzie wolny i podnieś go
3. Jeśli drugi widelec jest zajęty to odłóż podniesiony widelec i przejdź do kroku 1.
4. Jeśli drugi widelec jest wolny to go podnieś
5. Jedz
6. Odłóż oba widelce
I trzeba to zakodzić współbieżnie aby odbywało się to dla każdego z pięciu filozofów.
Robił ktoś coś podobnego albo może mnie wprowadzić do programowania współbieżnego w C#? ;<