```java
package Thread_commutation;//
import java.util.ArrayList;
import java.util.List;
// Created by Chenglong Shi on 2021/11/7.
// only can use to study
// once found commercial or illegal use will be pursued to the end
// Banning plagiarism
// Email:2230307855@qq.com
// 内部可能含有拼音和汉语注释
// by 史成龙
// 方法:
//
// synchronized 实现的同步可以在感知方面认为是同时的 一个生产一个消耗
// 必须定义相同的同步资源变量 如下面程序中的两个线程块里的num变量
// 两个num看似没有联系,实则在执行与等待 以及唤醒过程中已经达到同步计数的效果
public class ProducerAndConsumerProblem {
public static void main(String[] args) {
//模拟存储商品的集合
List