package thread;
public class Thread_11 {
public static void main(String[] args) {
Goods g = new Goods();
Porduter p = new Porduter(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();
}
}
class Goods{
private String name;
private int count = 1;
private boolean flag = false;
//生成方法
public synchronized void set(String name){
while(flag){
try {
System.out.println("进入了生产方法等待");
this.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
this.name = name + "-生产者" + count++;
System.out.println(Thread.currentThread().getName()+this.name);
flag = true;
this.notifyAll();
}
//消费方法
public synchronized void out(String name){
while(!flag){
try {
System.out.println("进入了消费方法等待");
this.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
this.name = name + "-消费者" + count;
System.out.println(Thread.currentThread().getName()+this.name);
flag = false;
this.notifyAll();
}
}
//生产者
class Porduter implements Runnable{
private Goods g;
public Porduter(Goods g){
this.g = g;
}
@Override
public void run() {
while(true){
g.set("生产商品");
}
}
}
class Consumer implements Runnable{
private Goods g;
public Consumer(Goods g){
this.g = g;
}
@Override
public void run() {
// TODO Auto-generated method stub
while(true){
g.out("消费商品");
}
}
}
请关注“知了堂学习社区”,地址:http://www.zhiliaotang.com/portal.php