public class Storage {
private int storage = 10;
private int MAX = 10;
public int getMaxSize() {
return this.MAX;
}
public int getStorage() {
return this.storage;
}
public synchronized void add() {
if (storage >= MAX) {
try {
this.wait();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("仓库已满,停止存放!");
return;
}
storage += 1;
System.out.println("仓库容量+1,目前容量: " + storage);
notifyAll();
}
public synchronized void del() {
if (storage <= 0) {
try {
this.wait();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("仓库已空,停止取货!");
return;
}
storage -= 1;
System.out.println("仓库容量-1,目前容量: " + storage);
notifyAll();
}
public static void main(String[] args) {
Storage storage = new Storage();
Producer producer = new Producer(storage);
Consumer consumer = new Consumer(storage);
Thread p1 = new Thread(producer);
Thread p2 = new Thread(producer);
Thread c1 = new Thread(consumer);
Thread c2 = new Thread(consumer);
p1.start();
p2.start();
c1.start();
c2.start();
}
}
class Producer implements Runnable {
Storage storage;
public Producer(Storage storage) {
this.storage = storage;
}
@Override
public void run() {
while(true) {
storage.add();
}
}
}
class Consumer implements Runnable {
Storage storage;
public Consumer(Storage storage) {
this.storage = storage;
}
@Override
public void run() {
while(true) {
storage.del();
}
}
}
生产者-消费者模型实现
最新推荐文章于 2021-11-20 16:43:07 发布