java定时器的使用(Timer)_继承thread类多线程模拟卖票

(41) 2023-09-08 18:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说java定时器的使用(Timer)_继承thread类多线程模拟卖票,希望能够帮助你!!!。

今天就要结束Java中定时器的功能介绍,大家在项目中需要用到哪个方法可以参考下schedule方法的介绍以及使用。

  • 多线程之Timer类的使用(一)

  • 多线程之Timer类的使用(二)

  • 多线程之Timer类的使用(三)——循环执行

  • 多线程之Timer类的使用(四)——清除队列

  • 多线程之Timer类的使用(五)--其他schedule方法

今天来说下schedule和scheduleAtFixedRate设置的时间比当前时间晚的情况,在玩scheduleAtFixedRate方法的时候会出现任务追赶性,会补充执行之前没执行的任务。下面看下两个方法的对比。

java定时器的使用(Timer)_继承thread类多线程模拟卖票_https://bianchenghao6.com/blog__第1张

执行任务

任务里比较简单,只是输出开始运行的时间。

  • schedule方法的任务不追赶

java定时器的使用(Timer)_继承thread类多线程模拟卖票_https://bianchenghao6.com/blog__第2张

schedule方法

从这边的结果可以看到,schedule方法如果设置的时间比当前早的话则第一次运行任务是在启动时,而不管设置的时间和当前时间间隔的任务,全部被取消了。这就是Task任务不追赶的结果。

  • scheduleAtFixedRate

java定时器的使用(Timer)_继承thread类多线程模拟卖票_https://bianchenghao6.com/blog__第3张

scheduleAtFixedRate的追赶性

从结果可以看到,设置的执行时间比当前时间早的时候,会出现多次执行任务的情况,之后才按照设置的延时时间来执行。也就是说,在设置的时间和当前的时间的任务被补充执行了~!这就是scheduleAtFixedRate的任务追赶性。

好了,Timer类差不多就这样吧。放了波水。。最近在弄git的,以后可能会把代码放到git上面吧,想测试也可以下载试试。

大家写定时器的时候可以参考下~~

谢谢大家的收看~喜欢的关注一波~

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

上一篇

已是最后文章

下一篇

已是最新文章

发表回复