print("FULL");
//如果有线程等待,则不打印“NO LONGER FULL”这句话
fifo.waitWhileFull();
print("NO LONGER FULL");
}
}
}
catch (InterruptedException ix) {
return;
}
}
//此方法用于检测内容是否为空
private static void emptyCheck(ObjectFIFO fifo) {
try {
// 同步化方法允许条件仍然为true时打印信息
synchronized (fifo) {
while (true) {
//调用waitUntilEmpty()方法,判断数组中的内容是否为空
fifo.waitUntilEmpty();
//如果为空则打印此句
print("EMPTY");
//等待数组中的内容直到空的时候
fifo.waitWhileEmpty();
//如果不为空则打印“NO LONGER EMPTY”
print("NO LONGER EMPTY");
}
}
}
catch (InterruptedException ix) {
return;
}
}
//此方法用于从数组中取出数据
private static void consumer(ObjectFIFO fifo) {
try {
print("just entered consumer()");
//从数组中取出三个数据
for (int i = 0; i < 3; i++) {
synchronized (fifo) {
//调用remove()方法,返回obj对象
Object obj = fifo.remove();
//打印取出的对象
print("DATA-OUT - did remove(), obj=" + obj);
}
//休眠3秒