Posted on 2007-05-28 15:49
change 阅读(638)
评论(0) 编辑 收藏
java 是不直接支持 信号量的,我们必须自己来定义我们所需要的信号量
class Semaphore {
private int count;
public Semaphore(int count) {
this.count = count;
}
public synchronized void acquire() {
while(count == 0) {
try {
wait();
} catch (InterruptedException e) {
//keep trying
}
}
count--;
}
public synchronized void release() {
count++;
notify(); //alert a thread that´s blocking on this semaphore
}
}
对要访问的同步资源进行 同步计数控制,来达到同步访问资源的目的。