📄 fairallocator.java
字号:
//********************************************************
//
// FairAllocator Class
//
package concurrency.golf;
public class FairAllocator implements Allocator{
private int available;
private long turn = 0; //next ticket to be served
private long next = 0; //next ticket to be dispensed
public FairAllocator(int n) { available = n; }
synchronized public void get(int n)
throws InterruptedException {
long myturn = turn;
++turn;
while (n>available || myturn != next)
wait();
++next;
available -= n;
notifyAll();
}
synchronized public void put(int n) {
available += n;
notifyAll();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -