黑马程序员技术交流社区

标题: 交通灯系统问题 [打印本页]

作者: 麦子609    时间: 2013-9-17 18:51
标题: 交通灯系统问题
本帖最后由 麦子609 于 2013-9-18 19:57 编辑

scheduleAtFixedRate()方法的中间两个参数在这个例子中的含义,张老师讲的没有怎么听明白
  1.   //每隔一秒检查对应的灯是否为绿,是则放行一辆车               
  2.                 ScheduledExecutorService timer =  Executors.newScheduledThreadPool(1);
  3.                 timer.scheduleAtFixedRate(
  4.                                 new Runnable(){
  5.                                         public void run(){
  6.                                                 if(vechicles.size()>0){
  7.                                                         boolean lighted = Lamp.valueOf(Road.this.name).isLighted();
  8.                                                         if(lighted){
  9.                                                                 System.out.println(vechicles.remove(0) + " is traversing !");
  10.                                                         }
  11.                                                 }
  12.                                                 
  13.                                         }
  14.                                 },
  15.                                 1,//具体在这个例子中代表什么意思
  16.                                 1,//具体在这个例子中代表什么意思
  17.                                 TimeUnit.SECONDS);
  18.                
  19.         }
复制代码

作者: 辛春鹏    时间: 2013-9-17 20:47
本帖最后由 辛春鹏 于 2013-9-17 20:51 编辑

第一个是指过多久就执行第一次。下一个的意思是以后每过多久执行一次
就是过1秒执行第一次,j就是判断着露路上有没有车啊,是不是绿灯啊。如果路上有车并且是绿灯就放行第一辆车,也就是把这个元素移除出容器。以后每隔1秒执行一次。一样的过程
作者: 吃阁子的猫    时间: 2013-9-18 01:32
连环发生啊,第一次发生在1秒以后,以后没隔一秒就发生一次,这是线程池调度的一个方法
作者: 潘才新    时间: 2013-9-18 11:43
顶顶,加油
作者: 黄文伯    时间: 2013-9-18 19:53
亲,如问题已解决请将分类的“未解决”改为“已解决”。
以后的问题贴也要及时更改分类哦~
作者: 麦子609    时间: 2013-9-18 19:58
黄文伯 发表于 2013-9-18 19:53
亲,如问题已解决请将分类的“未解决”改为“已解决”。
以后的问题贴也要及时更改分类哦~ ...

不好意思啊  忘了   已经改过了





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2