比如timer.schedule(new PeriodicityTask(), 1000, delay);//delay=1000 1秒
如果PeriodicityTask的run()方法执行的时间过长,超过了秒会怎么样???
run在执行的一半会被终止吗?马上给分
如果PeriodicityTask的run()方法执行的时间过长,超过了秒会怎么样???
run在执行的一半会被终止吗?马上给分
解决方案 »
- 多线程的小疑问??
- HPPC:High Performance Primitive Collections for Java
- 关于ant
- JFrame 如何做到随鼠标拖动窗口大小时窗口内控件同步变化大小?注意是实时同步
- 文件文件!!!
- 怎么输出动态的unicode 值 ?
- 前面的贴已结,未得答案。再开一帖,继续寻求答案。小弟跪求:JAVA中如何读取PPT文件中的内容。这个问题困扰我很久了,希望大家能够给我帮
- 求大家帮忙了???????????????????????????
- 文件流问题?
- 如何在一个字符串中,模糊查找一个子串,比如可以像DOS那样匹配*或?
- 请教一个方法
- 在java中如何实现分页打印阿?
安排指定的任务从指定的延迟后开始进行重复的固定延迟执行。以近似固定的时间间隔(由指定的周期分隔)进行后续执行。
在固定延迟执行中,根据前一次执行的实际执行时间来安排每次执行。如果由于任何原因(如垃圾回收或其他后台活动)而延迟了某次执行,则后续执行也将被延迟。从长期来看,执行的频率一般要稍慢于指定周期的倒数(假定 Object.wait(long) 所依靠的系统时钟是准确的)。 固定延迟执行适用于那些需要“平稳”运行的重复活动。换句话说,它适用于在短期运行中保持频率准确要比在长期运行中更为重要的活动。这包括大多数动画任务,如以固定时间间隔闪烁的光标。这还包括为响应人类活动所执行的固定活动,如在按住键时自动重复输入字符。
参数:
task - 所要安排的任务。
delay - 执行任务前的延迟时间,单位是毫秒。
period - 执行各后续任务之间的时间间隔,单位是毫秒。
抛出:
IllegalArgumentException - 如果 delay 是负数,或者 delay + System.currentTimeMillis() 是负数。
IllegalStateException - 如果已经安排或取消了任务,已经取消了计时器,或者计时器线程已终止。所以应该不会终止的.
PeriodicityTask() 里面启动一个线程来执行你需要的任务,而PeriodicityTask(), 自己则马上返回。这样的话,同时并发执行中的线程会慢慢变多的,要小心了。