生產者和消費者代碼。
資源:
package ProducerConsumer;
public class Goods
{
String name;
int count;
boolean flag = true;
public synchronized void product(String
name)
{
while(! flag)
{
try {
this.wait();
} catch (InterruptedException
e) {
e.printStackTrace();
}
}
this. name =
name + count++;
System. out.println(Thread. currentThread().getName()
+ "生產者生產了----" + this. name);
flag = false;
this.notifyAll();
}
public synchronized void consume()
{
while( flag)
{
try {
this.wait();
} catch (InterruptedException
e) {
e.printStackTrace();
}
}
System. out.println(Thread. currentThread().getName()
+ "消費了---" + name);
flag = true;
this.notifyAll();
}
}
生產者;
package ProducerConsumer;
public class Producer implements Runnable{
Goods goods;
public Producer(Goods
g)
{
this. goods =
g;
}
public void run()
{
while( true)
{
goods.product( "商品" );
}
}
}
消費者
package ProducerConsumer;
public class Consumer implements Runnable{
Goods goods;
public Consumer(Goods
g)
{
this. goods =
g;
}
public void run()
{
while( true)
{
goods. consume();
}
}
}
應用
package ProducerConsumer;
public class AppDemo
{
public static void main(String[]
args) {
Goods g= new Goods();
Producer p = new Producer(g);
Consumer c = new Consumer(g);
Thread t1 = new Thread(p);
Thread t2 = new Thread(p);
Thread t3 = new Thread(c);
Thread t4 = new Thread(c);
t1.start();
t2.start();
t3.start();
t4.start();
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.