当前位置: 首页 > news >正文

网站网站建设报价蓝田微网站建设

网站网站建设报价,蓝田微网站建设,东莞阿里巴巴代运营公司,北京短视频代运营在java中,Timer类主要用于定时性、周期性任务 的触发,这个类中有两个方法比较难理解,那就是schedule和scheduleAtFixedRate方法,在这里就用实例分析一下 (1)schedule方法:“fixed-delay”&#…
在java中,Timer类主要用于定时性、周期性任务 的触发,这个类中有两个方法比较难理解,那就是schedule和scheduleAtFixedRate方法,在这里就用实例分析一下

(1)schedule方法:“fixed-delay”;如果第一次执行时间被delay了,随后的执行时间按 照 上一次 实际执行完成的时间点 进行计算
(2)scheduleAtFixedRate方法:“fixed-rate”;如果第一次执行时间被delay了,随后的执行时间按照 上一次开始的 时间点 进行计算,并且为了”catch up”会多次执行任务,TimerTask中的执行体需要考虑同步 
SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");  
Date startDate = dateFormatter.parse("2010/11/26 00:20:00");  
Timer timer = new Timer();  
timer.scheduleAtFixedRate(new TimerTask(){  public void run()  {  System.out.println("execute task!" + this.scheduledExecutionTime());  }  
},startDate,3*60*1000);  
 以上的代码,表示在2010-11-26 00:20:00秒开始执行,每3分钟执行一次
假设在2010/11/26 00:27:00执行
以上会打印出3次
execute task!   00:20
execute task!   00:23    catch up
execute task!   00:26    catch up
下一次执行时间是00:29,相对于00:26
当换成schedule方法时,在2010/11/26 00:27:00执行
会打印出1次
execute task!   00:20   无catch up
下一次执行时间为00:30,相对于00:27

以上考虑的都是在你设定的timer开始时间后,程序才被执行

当执行任务的时间大于周期间隔时,会发生什么呢?
(1)schedule方法:下一次执行时间相对于 上一次 实际执行完成的时间点 ,因此执行时间会不断延后
(2)scheduleAtFixedRate方法:下一次执行时间相对于上一次开始的 时间点 ,因此执行时间不会延后,存在并发性 
以下例程序来测试上述结论,TimerTask需要执行6秒钟,但是间隔周期为5秒钟
package test;  
import java.text.ParseException;  
import java.text.SimpleDateFormat;  
import java.util.Date;  
import java.util.Timer;  
import java.util.TimerTask;  
public class Test {  public static void main(String[] args) throws ParseException {  SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");  Date startDate = dateFormatter.parse("2010/11/28 01:06:00");  Timer timer = new Timer();  timer.schedule(new TimerTask(){  public void run() {  try {  Thread.sleep(6000);  } catch (InterruptedException e) {  e.printStackTrace();  }  System.out.println("execute task!"+ this.scheduledExecutionTime());  }  },startDate, 5 * 1000);  }  }  
 schedule方法的执行结果如下:
execute task!1290877560001
execute task!1290877566001
execute task!1290877572001
execute task!1290877578001
execute task!1290877584001
execute task!1290877590001
execute task!1290877596001
execute task!1290877602001
execute task!1290877608001
execute task!1290877614001
execute task!1290877620001
execute task!1290877626001
execute task!1290877632001
execute task!1290877638001
可以看出,间隔时间都为6秒,因此,下一次的执行时间点=上一次程序执行完成的时间点+间隔时间 
当换成scheduleAtFixedRate方法的执行结果如下:
execute task!1290877860000
execute task!1290877865000
execute task!1290877870000
execute task!1290877875000
execute task!1290877880000
execute task!1290877885000
execute task!1290877890000
execute task!1290877895000
execute task!1290877900000
execute task!1290877905000
execute task!1290877910000
execute task!1290877915000
execute task!1290877920000
execute task!1290877925000
execute task!1290877930000
可以看出,间隔时间都为5秒,因此,下一次的执行时间点=上一次程序开始执行的时间点+间隔时间 ;并且因为前一个任务要执行6秒,而当前任务已经开始执行了,因此两个任务间存在重叠,需要考虑线程同步

http://blog.csdn.net/gtuu0123/article/details/6040159 原址
http://www.yayakq.cn/news/164166/

相关文章:

  • wordpress ssl长沙关键词优化报价
  • 打开一个网站在建设中wordpress模板开发
  • 大连建网站电话wordpress如何写个插件
  • 爱站工具查询石家庄seo推广公司
  • 东阳市建设局网站广州有什么好玩的东西
  • 长春做网站的电话推广计划ppt
  • 在线教育网站有哪些免费编程软件小学生
  • 河源市住宅和城乡规划建设局网站网站设计编辑
  • 长沙网站se0推广优化公司专门做任务的网站6
  • 建设网站怎样赚钱品牌设计网站公司
  • 做网站教程第一课彩票开奖网站开发
  • 平面设计师必看的网站电商扶贫网站建设
  • 百度网站排名怎么做西宁软件网站建设
  • php网站怎么做集群网站的软件维护包括什么
  • 铜川建设网站外贸网络营销定价策略
  • 做外贸哪些网站可以发免费信息wordpress下载页源码
  • 网站如何做收录排行没有网站可以做app吗
  • 营销型网站建设托管广西梧州发现1例阳性人员
  • 东莞响应式网站制作陕西室内设计公司排名
  • 360网站怎么做链接网站网页设计入门
  • 腾讯网qq网站北京seo编辑
  • o2o网站建设方案 多少钱怎么做网站的效果图
  • 本科毕业 做网站编辑陕西建设人才网站
  • 中卫网站设计公司排名山东网站建设运营
  • 做网站大概要多品牌网站建设S苏州
  • dw制作asp网站模板象山县住房建设局网站
  • 信息门户网站怎么做企业设计网站系统
  • 福州建设网站公司中学生网站源码
  • 成都工程建设信息网站一键网站建设
  • 目前流行的网站开发技术wordpress 主题 模板