bool[] fork = new bool[5];
public void Get(int left, int right)
while (fork[left] || fork[right]) Monitor.Wait(this);
fork[left] = true; fork[right] = true;
public void Put(int left, int right)
fork[left] = false; fork[right] = false;
public Person1(int n, int think, int eat, person p)
this.think = think; this.eat = eat;
left = n == 0 ? 4 : n - 1;
new Thread(new ThreadStart(Run)).Start();
Console.WriteLine("person " + n + " is eating...");
public static void Main()
person p1 = new person();
new Person1(0, 10, 50, p1);
new Person1(1, 20, 40, p1);
new Person1(2, 30, 30, p1);
new Person1(3, 40, 20, p1);
new Person1(4, 50, 10, p1);