Java定时器

定时器的原理、制作及其优化

什么是定时器

定时器是我做的一个小工具,在后面NIO的轮询会有用处。
其作用就是隔一段时间就去做某件事,这一段时间(即延迟时间)是不受这件事代码量的多少而改变的,即到点做事。

定时器原理与制作

首先我们应该能意识到,肯定会用到线程。
1.怎么做到隔一段时间就去做我们规定的事
这里必须要一个主线程来一直侦听(即延迟时间过后就去做事)
2.怎么做到延迟时间不受代码量影响
开辟一个线程去做这件事。
3.应该用抽象类去规定做的事还是用接口
接口,继承只能单继承一些类要是需要继承不可少的类,那么这个工具要是做成抽象类方式,那样就不能用了。所以接口具有普适性,接口好.
大体思路明白后,讲一下原理。一个Didadida类用来配置启动关闭定时器,一个接口类UserTask用来让使用者规定要执行的事。Didadida开启后直接新建一个线程,该线程处于循环中,循环中利用Sleep来实现延迟,延迟后新建一个线程来做我们要做的事。

Java定时器
Java定时器
Java定时器

Java定时器

怎么优化

关于优化其实这里可以优化的不多,这里出现了很多线程的建立与销毁,那么最好用线程池。