标签:问题 desktop mes ret ios == xtend 对象 not
核心:
缓冲区
生产者--->多线程(有多个操作)
消费者--->多线程
缓冲区--->并发容器(JUC包下已经提供了)--->操作商品
缓冲区需要实现什么功能
需要并发什么操作
并发存--->什么时候可以存(容器不够时,需要等待)
并发取--->什么时候可以取(里面有数据,就可以取。空容器,进行等待。等待生产)
wait同样是阻塞的一种,但是会释放锁。

当notify或者notifyAll被调用的时候线程就进入了可运行状态
package iostudy.threadcooperation;
?
import java.util.stream.Stream;
?
/**
 * 协作模型:生产者---消费者方式一:
 * 管程法
 * @since JDK 1.8
 * @date 2021/6/21
 * @author Lucifer
 */
public class CoTestNo1 {
    public static void main(String[] args) {
?
        /*先创建缓冲区*/
        SynContainer container = new SynContainer();
?
        /*生产者*/
        new Productor(container).start();
?
        /*消费者*/
        new Consumer(container).start();
    }
}
?
/**
 * 多线程生产者
 */
class Productor extends Thread{
?
    /*对缓冲区进行操作*/
    SynContainer container;
?
    /*添加构造器*/
    public Productor(SynContainer container){
        super();
        this.container = container;
    }
?
    /*重写run方法*/