Program:-
import
java.util.*;
class IPC
{
LinkedList<Integer> list = new
LinkedList<>();
int capacity = 2;
public void produce() throws
InterruptedException
{
int value = 0;
while(true)
{
synchronized
(this)
{
while
(list.size()==capacity)
{
wait();
}
System.out.println("Producer produced item: "+ value);
list.add(value++);
notify();
Thread.sleep(1000);
}
}
}
public void consume() throws InterruptedException
{
while (true)
{
synchronized
(this)
{
while
(list.size()==0)
{
wait();
}
int val =
list.removeFirst();
System.out.println("Consumer
consumed item: "+ val);
notify();
Thread.sleep(1000);
}
}
}
}
class u72
{
public static void main(String[]
args) throws InterruptedException
{
IPC ob = new IPC();
Thread t1 = new Thread(new Runnable()
{
public void run()
{
try
{
ob.produce();
}
catch(InterruptedException e)
{
e.printStackTrace();
}
}
});
Thread t2 = new Thread(new Runnable()
{
public void run()
{
try
{
ob.consume();
}
catch(InterruptedException e)
{
e.printStackTrace();
}
}
});
t1.start();
t2.start();
t1.join();
t2.join();
}
}
No comments:
Post a Comment