golfclub.java
来自「演示win32的socket 通讯 八皇后的改进算法 并发Concurren」· Java 代码 · 共 79 行
JAVA
79 行
/*
@author j.n.magee 25/04/98
*/
package concurrency.golf;
import java.awt.*;
import java.applet.*;
import concurrency.display.*;
public class GolfClub extends Applet {
String allocatorClass;
SlotCanvas waiting;
SlotCanvas playing;
SlotCanvas starting;
SlotCanvas ending;
StringCanvas allocDisplay;
Allocator alloc;
final static int playTime = 10000;
final static int Nballs = 5;
public void init() {
allocatorClass = getParameter("allocatorClass");
setLayout(new BorderLayout());
allocDisplay = new StringCanvas(allocatorClass);
allocDisplay.setSize(430,80);
starting = new SlotCanvas("new",Color.green,1);
ending = new SlotCanvas("end",Color.red,1);
Panel top = new Panel();
top.setLayout(new BorderLayout());
top.add("Center",allocDisplay);
top.add("West",starting);
top.add("East",ending);
add("North",top);
waiting = new SlotCanvas("wait golf balls",Color.yellow,5);
playing = new SlotCanvas("playing",Color.green,5);
Panel p1 = new Panel();
p1.add(waiting);
p1.add(playing);
add("Center",p1);
add("South",new PlayerArrival(this,Nballs));
}
void getGolfBalls(int n, String name)
throws InterruptedException {
String s = name+n;
starting.enter(s);
Thread.sleep(500);
starting.leave(s);
waiting.enter(s);
alloc.get(n);
waiting.leave(s);
playing.enter(s);
}
void relGolfBalls(int n, String name)
throws InterruptedException {
String s = name+n;
alloc.put(n);
playing.leave(s);
ending.enter(s);
Thread.sleep(500);
ending.leave(s);
}
public void start(){
if (allocatorClass.equals("SimpleAllocator"))
alloc = new DisplayAllocator(5,allocDisplay, new SimpleAllocator(5));
else if (allocatorClass.equals("FairAllocator"))
alloc = new DisplayAllocator(5,allocDisplay, new FairAllocator(5));
else if (allocatorClass.equals("BoundedOvertakingAllocator"))
alloc = new DisplayAllocator(5,allocDisplay, new BoundedOvertakingAllocator(5,3));
else
alloc = new DisplayAllocator(5,allocDisplay, new SimpleAllocator(5));
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?