基于JAVA实现的生产者消费者模型

来源:互联网 发布:法国女人知乎 编辑:程序博客网 时间:2024/06/07 06:30
class Resource
{
Resource(){ m_name = ""; m_number=0; m_flag = false; }
public synchronized void set(String name)
{
while (m_flag == true)
{
try { wait(); } catch (Exception e){}
}
m_name = name;
System.out.println("----生产者:" + m_name + "_"+ ++m_number);
m_flag = true;
notifyAll();
}


public synchronized void out()
{
while (m_flag == false)
{
try{ wait(); }catch(Exception e){}
}
System.out.println("消费者:" + m_name + "_"+ m_number);
m_flag = false;
notifyAll();
}


private String  m_name;
private int     m_number;
private boolean m_flag;
}


class Producer implements Runnable
{
Producer(Resource res){ m_res = res; }
public void run()
{
while (true)
{
m_res.set("A");
}
}


private Resource m_res;
}


class Consumer implements Runnable
{
Consumer(Resource res){ m_res = res; }
public void run()
{
while (true)
{
m_res.out();
}
}
private Resource m_res;
}

class ProducerConsumer 
{
public static void main(String[] args) 
{
Resource r = new Resource();
Producer p = new Producer(r);
Consumer c = new Consumer(r);

new Thread(p).start();
new Thread(c).start();
new Thread(p).start();
new Thread(c).start();
}
}
0 0
原创粉丝点击