标签:问题 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方法*/