Dining Philosophers Problem



Dining Philosophers Problem

import java.io.*;
class Philo
{
int state[]=new int[5];
int thinking,eating,hungry;
void Op()
{
thinking=0;
eating=1;
hungry=2;
}
public void pickup(int i)
{
state[i]=2;
System.out.println("Philosopher "+i+" is hungry");
test(i);
if(state[i]==2)
System.out.println("Philosopher "+i+" is waiting");
}
public void putdown(int i)
{
 if(state[i]==1)
        {
        state[i]=0;
        System.out.println("Philosopher"+i+" is thinking");
test((i+1)%5);
test((i+5)%5);
        }
}

public void test(int i)

{
if(state[i]==2 && state[(i+1)%5]!=1 && state[(i+4)%5]!=1)
        {
        state[i]=1;
        System.out.println("philosopher "+i+" is eating");
        }
}
}
class Philosopher
{
        public static void main(String args[])throws IOException
{
Philo d=new Philo();
for(int i=0;i<5;i++)
d.pickup(i);
for(int i=0;i<5;i++)
d.putdown(i);
}
}

OUTPUT:
 

0 comments:

Post a Comment

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites More