当定时器超时时,它将执行预先编程好的动作。这可能会触发以下事件之一:
定时器触点 T 闭合
定时器触点 T 通常是常开的。当定时器超时时,T 触点闭合,允许电流通过该触点。
输出触点 O 闭合
定时器的输出触点 O 也可能是常开的。当 T 触点闭合时,O 触点闭合,允许电流流向外部电路。
灯亮
如果外部电路中连接了灯,当 O 触点闭合时,灯将亮起。
因此,当定时器超时时,定时器触点 T 闭合,输出触点 O 闭合,灯亮。
其他可能的行为
取决于定时器的具体类型和编程设置,它超时时还可能执行其他动作,例如:
- 报警或蜂鸣器响起
- 继电器吸合,触发另一个电路
- 数据信号被发送或接收
了解定时器超时时的预期行为非常重要,这样您才能正确设计和使用定时器电路。
关于java定时器Timer的疑问,当执行时间大于间隔时间会怎样?
这个问题,我正好以前研究过先回答你的问题:是等待第一次任务执行完然后细说:如果你用的是 ,那么这个Timer 有两种执行模式:fixed-rate:对应于 scheduleAtFixedRate 方法fixed-delay:对应于 schedule 方法fixed-rate 模式,如果某次任务超时了,它会智能的缩短下一次任务的执行时间,比如你 10 秒一次任务,但是任务执行了 15 秒,那么下一次任务如果没有超时的话,可能也不会分配给他完整的 10 秒,而是 5 秒目的是尽量让后面的任务可以赶上来任务执行时间可能是这样一个模式:第一次任务:15 秒(超时)第二次任务:8 秒(未超时)第三次任务:7 秒(未超时)第四次任务:10 秒(未超时)……如果你任务一直都在超时,可能每次任务执行完之后,就会立刻执行下一次任务其实如果你每次任务都超时,你应该考虑的是,在程序中,就增加任务的延时fixed-delay 模式,如果你某次任务超时了,也不会影响下一次任务的执行时间10 秒周期的任务,执行了 15 秒那下一次任务依然是分配完整的 10 秒任务执行时间可能是这样一个模式:第一次任务:15 秒(超时)第二次任务:10 秒(未超时)第三次任务:10 秒(未超时)第四次任务:15 秒(超时)如果你用的是 ,这个是按固定周期触发的由于这个 Timer 是在 EDT (Java GUI 的事件指派线程)上执行的EDT 有智能合并任务的处理如果你某次任务超时了,那么下一次任务将和下下次任务智能合并成一个任务比如 10 秒周期的任务,执行了 15 秒任务执行时间可能是这样一个模式:第一次任务:20 秒(超时)第二次任务:合并第三次任务:10 秒(未超时)……其实 也有 Fixed Rate 模式,可以通过 setCoalesce(false); 方法开启但是不建议这样使用
本文原创来源:电气TV网,欢迎收藏本网址,收藏不迷路哦!
添加新评论