您可以通过传递它们的构造函数将同一个数组或列表实例传递给使用者和生产者.
Array a = new Array();
Consumer c = new Consumer(a);
Producer p = new Producer(a);
对于第二个问题,您希望了解(google it!)以便在Java中进行同步.您可以再次传入相同的私有对象lock1 = new Object();消费者和生产者都可以使用它作为共享锁.
每当消费者或生产者访问共享阵列时,他们都需要首先获得锁定.其他条件要求,例如“当数组已满时不插入元素”或“数组为空时不消耗元素”可以在同步块内实现.
public void add(Object someObject){
synchronized (lock1) {
if(a.size()>limit) {
System.out.println("Array is full");
} else {
a.add(someObject)
}
}
}