黑马程序员技术交流社区
标题:
交通灯管理系统的疑问,求解答!
[打印本页]
作者:
思维
时间:
2014-8-16 16:21
标题:
交通灯管理系统的疑问,求解答!
本帖最后由 思维 于 2014-8-17 09:08 编辑
今天学交通灯管理系统,看到张孝祥老师的PPT里面有这么一句话:在Road对象的构造方法中启动一个定时器,每隔一秒检查该方向上的灯是否为绿,是则打印车辆集合和将集合中的第一辆车移除掉。
问题是:难道当前灯不是绿灯,已经进入集合的车辆就不用移除吗?实际情况是不是当前灯变为红灯时,已经进入该路线的车辆必须停下原地待命,等下次绿灯啊?
ScheduledExecutorService timer = Executors.newScheduledThreadPool(1);
//创建一个固定频率的定时器,
timer.scheduleAtFixedRate(
//执行路线中车辆通过的线程
new Runnable(){
public void run(){
//假设路中存在车辆
if(vechicles.size()>0){
//返回当前路线灯的状态
boolean lighted = Lamp.valueOf(Road.this.name).isLighted();
//假设道路上为绿灯,remove(0)表示移除首先进入该集合的车辆
if(lighted){
System.out.println(vechicles.remove(0)+"is traversing!");
}
}
}
},
//初始化延时,1秒以后执行该线程
1,
//两次开始执行的最小间隔时间为1秒
1,
//计时单位:秒
TimeUnit.SECONDS
);
复制代码
作者:
fantacyleo
时间:
2014-8-16 18:07
肯定的啊,前面是红灯还不停下来,那是闯红灯啊
作者:
思维
时间:
2014-8-16 21:11
好吧!看来我还不太懂交通法规!
作者:
215041631
时间:
2014-8-16 21:59
肯定啊 ……你开车不看红绿灯?
作者:
侯岩卿
时间:
2014-8-16 22:53
红灯吗。当然是要停车等绿灯啊
作者:
思维
时间:
2014-8-17 09:08
主要是还木有碰过车:D
作者:
java—family
时间:
2014-8-17 09:17
思维 发表于 2014-8-17 09:08
主要是还木有碰过车
你不会理解为行人看见的红绿灯吧。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2