fairallocator.java
来自「演示win32的socket 通讯 八皇后的改进算法 并发Concurren」· Java 代码 · 共 31 行
JAVA
31 行
//********************************************************
//
// 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 + =
减小字号Ctrl + -
显示快捷键?