java 10 -09的作业

1.过山洞

    5辆车汽车过山洞,每次只允许一个车通过,每辆汽车通过时间不同 2 6 8 10

    提示,汽车是现象

2.银行存钱取票机的问题

    50人去银行,从取票机取票号。每个人取的票号是唯一的。

  通过同步代码块和同步方法两种方式实现

 --------------------------------------------------------------------------------------

第一题

class NineThreadFiveclass{
public static void main(String[] agrs) {
Car c=new Car("宾利",3000);
Car c1=new Car("奔驰",5000);
RedLight w=new RedLight();
c.start();
c1.start();
w.start();

}

}

//定义车辆进程
class Car extends Thread{
private String name;
private int time;
static Object lock = new Object();
public Car (String name ,int time){
this.name =name;
this.time =time;
}

//定义run方法 即进洞即锁住直到出动
public void run(){
synchronized(lock){
System.out.println("ccc" + name+ "进洞了");
try{
Thread.sleep(time);
}
catch(Exception e){

}
System.out.println("ccc" + name + "出洞了");
}

}
}

//定义守护线程,即在洞里就守护
class RedLight extends Thread{
public RedLight(){
this.setDaemon(true);
}
public void run(){
while (true){
System.out.println("在洞里");
try{
Thread.sleep(1000);
}
catch(Exception e){

}
}
}
}

---------------------------------------------------------------

第二题

猜你喜欢

转载自www.cnblogs.com/simly/p/10523941.html