黑马程序员技术交流社区

标题: 交通灯里代码不清楚 [打印本页]

作者: 黑马张伟    时间: 2011-12-25 22:32
标题: 交通灯里代码不清楚
本帖最后由 黑马张伟 于 2011-12-26 07:42 编辑

ScheduledExecutorService timer=Executors.newScheduledThreadPool(1);
                timer.scheduleAtFixedRate(
                                new Runnable(){
                                        public void run() {System.out.println("来啊!");
                                               
                                                currentLamp=currentLamp.blackOut();
                                        }
                                       
                                },
                                10,
                                10,
                                TimeUnit.SECONDS);
两个10和TimeUnit.SECONDS的意思
作者: yunqiangshan    时间: 2011-12-25 22:44
创建并执行一个在给定初始延迟后首次启用的定期操作,后续操作具有给定的周期;也就是将在 initialDelay 后开始执行,然后在 initialDelay+period 后执行,接着在 initialDelay + 2 * period 后执行,依此类推。如果任务的任何一个执行遇到异常,则后续执行都会被取消。否则,只能通过执行程序的取消或终止方法来终止该任务。如果此任务的任何一个执行要花费比其周期更长的时间,则将推迟后续执行,但不会同时执行。

参数:
command - 要执行的任务
initialDelay - 首次执行的延迟时间
period - 连续执行之间的周期
unit - initialDelay 和 period 参数的时间单位

作者: 李楠    时间: 2011-12-25 23:39
你是不明白为什么那里出现10,10吗?
scheduleAtFixedRate()方法的四个参数,第一个是个匿名内部类,那两个10是后面的参数。
如果是不明白这个函数是干什么的。给你看下API文档的描述。
scheduleAtFixedRate()方法
安排指定的任务在指定的延迟后开始进行重复的固定速率执行。以近似固定的时间间隔(由指定的周期分隔)进行后续执行。
固定速率执行适用于那些对绝对 时间敏感的重复执行活动,
如每小时准点打钟报时,或者在每天的特定时间运行已安排的维护活动。
它还适用于那些完成固定次数执行的总计时间很重要的重复活动,如倒计时的计时器,每秒钟滴答一次,共 10 秒钟。
最后,固定速率执行适用于安排多个重复执行的计时器任务,这些任务相互之间必须保持同步。








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