生产者消费者进程 正确程序
class Test
{
public static void main(String args[])
{ Queue q=new Queue();
Producer pt=new Producer(q);
pt.start();
/* try
{
Thread.sleep(500);
}
catch(InterruptedException e)
{
}
*/
Comsumer ct=new Comsumer(q);
ct.start();
{
public static void main(String args[])
{ Queue q=new Queue();
Producer pt=new Producer(q);
pt.start();
/* try
{
Thread.sleep(500);
}
catch(InterruptedException e)
{
}
*/
Comsumer ct=new Comsumer(q);
ct.start();
}
}
class Producer extends Thread
{
Queue q;
public Producer(Queue q)
{
this.q=q;
}
public void run()
{
for(int i=0;i<10;i++)
{
q.put(i);
}
}
}
class Comsumer extends Thread
{
Queue q;
public Comsumer(Queue q)
{
this.q=q;
}
public void run()
{
while(true)
{
q.get();
}
}
}
class Queue
{
int value;
boolean bFull=false;
public synchronized void put(int i)
{
if(bFull==false)
{
value=i;
System.out.println("Producer put "+i);
bFull=true;
try
{
this.wait();
}
catch(Exception e){}
}
}
public synchronized void get()
{
if(bFull==true)
{
System.out.println("Comsumer get "+value);
bFull=false;
this.notify();
}
}
}
{
Queue q;
public Producer(Queue q)
{
this.q=q;
}
public void run()
{
for(int i=0;i<10;i++)
{
q.put(i);
}
}
}
class Comsumer extends Thread
{
Queue q;
public Comsumer(Queue q)
{
this.q=q;
}
public void run()
{
while(true)
{
q.get();
}
}
}
class Queue
{
int value;
boolean bFull=false;
public synchronized void put(int i)
{
if(bFull==false)
{
value=i;
System.out.println("Producer put "+i);
bFull=true;
try
{
this.wait();
}
catch(Exception e){}
}
}
public synchronized void get()
{
if(bFull==true)
{
System.out.println("Comsumer get "+value);
bFull=false;
this.notify();
}
}
}
没有评论:
发表评论