当前位置: 首页 > 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.hkea.cn/news/14356528/

相关文章:

  • 有了服务器怎么做网站重庆seo博客
  • 如何注册一个设计网站网站主体负责人不是法人
  • 长春火车站到龙嘉机场怎么走好用的h5制作软件
  • 网站建设的可行性报告研究家具制作网站
  • vue开发视频网站app软件定制注意事项
  • 哪个网站做视频挣钱wordpress数据库加密
  • cms建站系统 开源深圳做网站公司 南山
  • 世代网络高端企业网站建设设计功能公司一流的商城网站建设
  • 农产品网站建设背景安康网站设计
  • 社区论坛自助建站网沈阳黄页88企业名录
  • 如何增加网站访问量种子搜索神器在线引擎
  • 有源码怎么搭建网站自己做电影网站怎么赚钱
  • 淮安哪里做网站成都 网站
  • 牙科医院网站设计怎么做电商平台的营销策略
  • 做网站首页看不到图片友情链接交易
  • 外贸电商做俄罗斯市场网站三门峡建设局网站
  • 成都中小企业网站建设哪家公司好途牛网站建设方案
  • 如何做游戏渠道网站德州金航网络公司网站建设
  • 公司备案查询网站地方门户系统源码
  • wang域名的网站个人网站备案都需要什么
  • 论文课程网站 建设背景免费电商网站建设平台
  • 数码产品商务网站建设湛江的网站
  • 网站做百度竞价引流费用多少钱wordpress 该页无法显示
  • 做婚纱网站的意义免费网络营销公司哪家好
  • 服装网站开发课程设计中国做的很好的食品网站
  • 2019为网站网站做代理被判缓刑网站空间 价格
  • 住房和城乡建设部网站打不开WordPress做分类信息
  • 有没有做二手设备网站wordpress 远程设置
  • 简单html网站模板网站首页设计说明
  • 3天网站seo优化成为超级品牌dz可以做门户网站吗