第五章:定时器 Timer

  1. 创建一个Timer 就是启动了一个线程,这个线程显然不是守护线程,所以一直运行。停不下来
    timer.schedule(task, runDate); 在什么时候,做什么事儿。
    在实例化Timer的时候,把它设置为守护线程。 Timer timer = new Timer(true);

  2. 计划时间早于当前时间—就立即执行。
    一个Timer中可以有多个TimeTask, 也许会出现延时,因为前面的task可能执行时间太长。

  3. timer.schedule(task, runDate, 4000); // 指定时间间隔,无限循环下去

  4. TimerTask中的cancel()方法,是将自身从任务队列中被移出去,其他任务不受影响。
    Timer中的cancel()方法,是将任务队列中全部的任务进行清空,但有时不一定会停止
    计划任务,而是正常执行。 原因是Timer中的cancel()方法有时候并没有争抢到queue锁,
    则让TimerTask类中的任务正常执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你在使用MATLAB中的定时器timer时发现它不准确,可能有几个原因导致这个问题。以下是一些建议来解决这个问题: 1. 考虑计算机性能:定时器的准确性可能受到计算机性能的影响。如果你的计算机正在执行其他任务或者负载较高,定时器可能受到延迟。尝试关闭其他程序或任务,以提高计算机性能。 2. 检查定时器设置:确保你正确设置了定时器的参数,特别是时间间隔。如果时间间隔设置不正确,定时器就不按照你的期望进行触发。确保你使用的是正确的时间单位(秒、毫秒等)。 3. 使用更高精度的定时器:MATLAB提供了多种类型的定时器,包括基于系统时钟的定时器和基于硬件时钟的定时器。基于硬件时钟的定时器通常具有更高的精确度。你可以尝试使用基于硬件时钟的定时器来提高定时器的准确性。 4. 考虑系统延迟:在某些情况下,操作系统的延迟可能导致定时器不准确。这可能是由于计算机负载、操作系统调度等原因造成的。考虑到系统延迟的因素,可以在编写代码时进行一些调整,以增加定时器的准确性。 5. 使用其他时间管理工具:如果以上建议仍然不能解决问题,你可以尝试使用其他时间管理工具来替代MATLAB的timer。例如,你可以使用操作系统提供的定时器功能,或者使用第三方库来管理时间。 希望以上建议对解决定时器不准确的问题有所帮助。如果问题仍然存在,请提供更多细节,以便我们能够更好地帮助你解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值