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

网站代运营公司有哪些建筑工程资料网站

网站代运营公司有哪些,建筑工程资料网站,网站的设计理念,wordpress 后台编辑一、简介 定时器#xff08;Timer#xff09;是一个工具类#xff0c;用于安排任务#xff08;java.util.TimerTask#xff09;在指定时间后执行或以指定的时间间隔重复执行。它可以用于执行定时任务、定时调度和时间延迟等操作。 定时器#xff08;Timer#xff09;可以… 一、简介 定时器Timer是一个工具类用于安排任务java.util.TimerTask在指定时间后执行或以指定的时间间隔重复执行。它可以用于执行定时任务、定时调度和时间延迟等操作。 定时器Timer可以应用于许多场景比如 调度任务固定速率当你需要按照预定时间执行任务时可以使用定时器。例如每天凌晨执行数据备份、定时生成报表、定时发送通知等。即scheduleAtFixedRate的2个重载方法。 超时处理固定延迟当你需要处理某个操作的超时情况时可以使用定时器。例如设置一个操作的超时时间如果在规定时间内未完成则执行相应的超时处理逻辑。即schedule的4个重载方法。 Java中的定时器java.util.Timer它的常用方法 Java 8 中文版 - 在线API手册 - 码工具 Modifier and Type Method and Description 参数说明 void cancel() 终止此计时器丢弃任何当前计划的任务。 / int purge() 从该计时器的任务队列中删除所有取消的任务。 / void schedule(TimerTask task, Date time) 在指定的时间安排指定的任务执行。如果此时间已过去则安排立即执行该任务 task:要调度的任务 time:执行任务的时间 void schedule(TimerTask task, Date firstTime, long period) 从指定 的时间开始 对指定的任务执行重复的 固定延迟执行 。 task:要调度的任务 firstTime:第一次执行任务的时间 period:连续任务以毫秒为单位的时间间隔 void schedule(TimerTask task, long delay) 在指定的延迟之后安排指定的任务执行。 task:要调度的任务 delay:在执行任务之前以毫秒为单位进行延迟的时间 void schedule(TimerTask task, long delay, long period) 在指定 的延迟之后开始 重新执行 固定延迟执行的指定任务。 task:要调度的任务 delay:在执行任务之前以毫秒为单位进行延迟的时间 period:连续任务以毫秒为单位的时间间隔 void scheduleAtFixedRate(TimerTask task, Date firstTime, long period) 从指定的时间 开始 对指定的任务执行重复的 固定速率执行 。 task:要调度的任务 firstTime:第一次执行任务的时间 period:连续任务以毫秒为单位的时间间隔 void scheduleAtFixedRate(TimerTask task, long delay, long period) 在指定的延迟之后 开始 重新执行 固定速率的指定任务。 task:要调度的任务 delay:在执行任务之前以毫秒为单位进行延迟的时间 period:连续任务以毫秒为单位的时间间隔 二、schedule和scheduleAtFixedRate方法的区别 这两个方法都是任务调度方法他们之间区别是schedule会保证任务的间隔是按照定义的period参数严格执行的如果某一次调度时间比较长那么后面的时间会顺延保证调度间隔都是period,而scheduleAtFixedRate是严格按照调度时间来的如果某次调度时间太长了那么会通过缩短间隔的方式保证下一次调度在预定时间执行。举个栗子你每个3秒调度一次那么正常就是0,3,6,9s这样的时间如果第二次调度花了2s的时间如果是schedule就会变成0,32,8,11这样的时间保证间隔而scheduleAtFixedRate就会变成0,32,6,9压缩间隔保证调度时间。 三、定时器Timer使用步骤 我们要实现一个定时任务只需要实现TimerTask的run方法即可。每一个任务都有下一次执行时间nextExecutionTime毫秒如果是周期性的任务那么每次执行都会更新这个时间为下一次的执行时间当nextExecutionTime小于当前时间时都会执行它。 1第一步创建一个Timer。 2第二步创建一个TimerTask。 3第三步使用Timer执行TimerTask。 其中第三步无疑是我们目前最关心的也就是timer.schedule(myTask, 2000L, 1000L)。他的意思是myTask在两秒钟之后开始第一次执行然后每隔一秒执行一次。这只是最基本的用法。就体现了Timer定时执行的流程。 示例1超时处理固定延迟 在2秒后开始执行只执行一次 import java.text.SimpleDateFormat; import java.util.Date; import java.util.Timer; import java.util.TimerTask;public class TimeTest {public static void main(String[] args) {System.out.println(当前时间: new SimpleDateFormat(yyyy-MM-dd HH-mm-ss:SSS).format(new Date()));Timer timer new Timer(); // 1第一步创建一个Timer。timer.schedule(new TimerTask() { // 2第二步创建一个TimerTask。3第三步使用Timer执行TimerTask。Overridepublic void run() {System.out.println(Timer is running);System.out.println(当前时间: new SimpleDateFormat(yyyy-MM-dd HH-mm-ss:SSS).format(new Date()));}}, 2000);} } 运行结果 当前时间:2023-08-19 22-45-46:161 Timer is running 当前时间:2023-08-19 22-45-48:169 示例2调度任务固定速率 执行周期性任务只需要添加schedule的第三个参数period。 在2秒后开始执行每隔1秒执行一次 import java.text.SimpleDateFormat; import java.util.Date; import java.util.Timer; import java.util.TimerTask;public class TimeTest {public static void main(String[] args) {System.out.println(当前时间: new SimpleDateFormat(yyyy-MM-dd HH-mm-ss:SSS).format(new Date()));Timer timer new Timer(); // 1第一步创建一个Timer。timer.schedule(new TimerTask() { // 2第二步创建一个TimerTask。3第三步使用Timer执行TimerTask。Overridepublic void run() {System.out.println(Timer is running);System.out.println(当前时间: new SimpleDateFormat(yyyy-MM-dd HH-mm-ss:SSS).format(new Date()));}}, 2000, 1000);} } 运行结果 当前时间:2023-08-19 22-48-10:190 Timer is running 当前时间:2023-08-19 22-48-12:200 Timer is running 当前时间:2023-08-19 22-48-13:203 Timer is running 当前时间:2023-08-19 22-48-14:216 示例32个Timer实例调度任务固定速率 import java.text.SimpleDateFormat; import java.util.Date; import java.util.Timer; import java.util.TimerTask;public class TimeTest {public static void main(String[] args) {System.out.println(timer当前时间: new SimpleDateFormat(yyyy-MM-dd HH-mm-ss:SSS).format(new Date()));Timer timer new Timer(); // 1第一步创建一个Timer。timer.schedule(new TimerTask() { // 2第二步创建一个TimerTask。3第三步使用Timer执行TimerTask。Overridepublic void run() {System.out.println(Timer is running);System.out.println(timer当前时间: new SimpleDateFormat(yyyy-MM-dd HH-mm-ss:SSS).format(new Date()));}}, 2000, 1000);System.out.println(timer2当前时间: new SimpleDateFormat(yyyy-MM-dd HH-mm-ss:SSS).format(new Date()));Timer timer2 new Timer(); // 1第一步创建一个Timer。timer2.schedule(new TimerTask() { // 2第二步创建一个TimerTask。3第三步使用Timer执行TimerTask。Overridepublic void run() {System.out.println(Timer2 is running);System.out.println(timer2当前时间: new SimpleDateFormat(yyyy-MM-dd HH-mm-ss:SSS).format(new Date()));}}, 3000, 2000);} }运行结果 timer当前时间:2023-08-20 00-08-06:746 timer2当前时间:2023-08-20 00-08-06:748 Timer is running timer当前时间:2023-08-20 00-08-08:750 Timer is running Timer2 is running timer2当前时间:2023-08-20 00-08-09:755 timer当前时间:2023-08-20 00-08-09:755 Timer is running timer当前时间:2023-08-20 00-08-10:769 Timer2 is running timer2当前时间:2023-08-20 00-08-11:768 Timer is running timer当前时间:2023-08-20 00-08-11:784 Timer is running timer当前时间:2023-08-20 00-08-12:787 Timer2 is running timer2当前时间:2023-08-20 00-08-13:770 四、Timer的缺陷 1、由于执行任务的线程只有一个所以如果某个任务的执行时间过长那么将破坏其他任务的定时精确性。如一个任务每1秒执行一次而另一个任务执行一次需要5秒那么如果是固定速率的任务那么会在5秒这个任务执行完成后连续执行5次而固定延迟的任务将丢失4次执行。 2、如果执行某个任务过程中抛出了异常那么执行线程将会终止导致Timer中的其他任务也不能再执行。 3、Timer使用的是绝对时间即是某个时间点所以它执行依赖系统的时间如果系统时间修改了的话将导致任务可能不会被执行。 五、更好的替代方法 由于Timer存在上面说的这些缺陷在JDK1.5中我们可以使用ScheduledThreadPoolExecutor来代替它使用Executors.newScheduledThreadPool工厂方法或使用ScheduledThreadPoolExecutor的构造函数来创建定时任务它是基于线程池的实现不会存在Timer存在的上述问题当线程数量为1时它相当于Timer。
http://www.lakalapos1.cn/news/71294/

相关文章:

  • 浙江建设厅 继续教育 网站首页网站管理助手 1004
  • 莲花网站东莞设计网站公司
  • 深情密码免费观看网站做小程序要多少钱
  • 网站编辑是什么工作轻量应用云服务器
  • 南阳优化网站排名小说网站排名前十
  • 网站优化培训班iis5.1怎么发布网站
  • jsp网站开发小程序t恤定制网站哪个好
  • 加强公司网站建设及数据库的通知凡客诚品支付方式
  • 网站你的后台管理系统用什么做返利网站怎么做
  • 医学教育网站建设方案微信网站模板
  • 佛山做网站怎样建公司网站
  • 2017年做那个网站致富wordpress+手机端
  • 一般网站如何做防采集的广州市手机网站建设公司
  • 冷库建设网站服务器购买一台多少钱
  • 广告行业包括网站建设吗网络推广公司运作
  • 哪里有做美食的视频网站公司部门解散员工赔偿
  • 301网站重定向怎么做广西送变电建设公司网站
  • 佛山市外贸网站建设价格wordpress鼠标指针插件
  • 能直接用网站做海报吗移动端app是什么意思
  • 网站内容如何自动关联新浪微博网络设计方案书主要包括哪些内容
  • 伊滨区网站建设建立网站不公开
  • 高级网站开发工程师证商务网站内容维护和管理的范围
  • 电子商务与网站建设做网站的技术难点
  • 津南做网站的公司沈阳市建设局网站
  • 网站建设跟加入会员哪个效果好ui网页设计实习周报
  • 杭州百度推广网站建设wordpress更换数据库
  • 山东省建设教育信息网站首页沈阳工程就业信息网
  • 哈尔滨企业建网站推广重庆市建设考试报名网站
  • 汕头企业模板建站常见的制作网站的工具
  • 做爰全过程免费费网站网页小游戏的网站