设计要求:
1. 用多线程技术实现多人过独木桥;
2. 模拟不同速度过桥;
3. 用面向对象方法设计程序。
怎么做???大神们
1. 用多线程技术实现多人过独木桥;
2. 模拟不同速度过桥;
3. 用面向对象方法设计程序。
怎么做???大神们
解决方案 »
- java 左右滚动的文字代码,,,是左右流动的
- 死循环问题
- java中如何能直接运行 html页面中的JavaScript 的函数
- java的look&feel或者皮肤
- 急......请问大家JB里怎么把我的程式打包成EXE文件啊?
- 我用win2000 sever 系统!但是怎么也配不起java 环境!高手帮忙!
- java中有没有生成临时文件的方法?
- 我在命令行下的jdk设置运行程序时,编译没问题,执行是老是出现NoClassDefFoundError哪个高手能告诉我怎么回师 ?我在命令行下的jdk设置
- 急!!在applet中打开Access表的工程,在IE中不能显示表
- [诚送60分]何用Java 的socket 来实现服务器和客户端的图象交互传输,急盼!!!
- 菜鸡互啄 求帮助 谢谢!
- jdbc 关于添加数据的问题
public class Bridge { private boolean occupied;
private long length;
public Bridge(boolean occupied, long length){
this.occupied = occupied;
this.length = length;
}
public void setOccupied(boolean o){
this.occupied = o;
}
public boolean isOccupied(){
return this.occupied;
}
public long getLength(){
return this.length;
}
}public class Person {
private String name;
private int speed;
public Person(String n, int s){
this.name = n;
this.speed = s;
}
public void crossingBridge(Bridge b){
synchronized(b){
try{
while(b.isOccupied()){
b.wait();
}
}catch(InterruptedException ie){
}
b.setOccupied(true);
long timeElapse = b.getLength() / speed;
try{
Thread.sleep(timeElapse * 1000);
b.setOccupied(false);
b.notifyAll();
}catch(InterruptedException ioe){
ioe.printStackTrace();
}
}
}
public int getSpeed(){
return this.speed;
}
public String getName(){
return this.name;
}
}
public class CrossingBridge implements Runnable { private Bridge bridge;
private Person person;
public CrossingBridge(Bridge b, Person p){
this.bridge = b;
this.person = p;
}
public void run(){
System.out.println(person.getName() + " start crossing bridge.");
person.crossingBridge(bridge);
System.out.println(person.getName() + " crossed bridge.");
}
public static void main(String args[]){
Bridge b = new Bridge(false,100);
Person p1 = new Person("slow", 5);
Person p2 = new Person("fast", 10);
Thread t1 = new Thread(new CrossingBridge(b, p1));
Thread t2 = new Thread(new CrossingBridge(b, p2));
t1.start();
t2.start();
}
}