注释很清楚的,
import java.util.LinkedList;
import java.util.Queue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
//产品
class Product
{
String name=null;
public Product(String name)
{
this.name=name;
}
}
class Buffer
{
private Queue queue=new LinkedList();//一个普通队列,同时作为同步的对象
private final int size=5; //最大长度为,可以自己调整
public void add(Product p)//
{
synchronized (queue) {
while(queue.size()==size)
{
System.out.println(Thread.currentThread().getName()+"队列已经满了,生产者释放锁");
try {
queue.wait(); //队列未满,则放弃锁,进行挂起,等到queue,notify,有个线程会重新从wait后运行
} catch (Interrup