????1. ????
?????????????????????н???????????Java??wait??notify??notifyAll???÷?????Щ???????????????????????Щ????????????????????д??????????
????????????????????????????????????????????????????Щ???JAVA1.5?????????????????????????????????д??????Щ??????????????????
???????????????????
????2. ????????????????????
???????????????
package com.sabo.concurrent;
/**
* Created by canbin.zhang on 2016/3/29.
*/
public class SaboStack {
private final int[] _data;
public SaboStack(int limit) {
_data = new int[limit];
}
private final Object lock = new Object();
private int size = 0;
public void push(int v) {
synchronized (lock) {
while (size >= _data.length) {
try {
lock.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
_data[size] = v;
++size;
lock.notifyAll();
}
}
public int pop() {
int v;
synchronized (lock) {
while (size == 0) {
try {
lock.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
v = _data[size - 1];
--size;
lock.notifyAll();
return v;
}
}
}
???????stack?????????????? ?????????????synchronized????????????????????????????????????????????????????????10??int??С???????????????????????????“?????????????? ????????????????????”??