首页 >

java中怎么实现定时功能? – 网络|

怎么用按键精灵设置一键顶多键,stvd怎么定义gpio,window10开机启动项怎么设置怎么用按键精灵设置一键顶多键,stvd怎么定义gpio,window10开机启动项怎么设置java中怎么实现定时功能? - 网络|java中怎么实现定时功能

1、基础知识java.util.Timer一种线程设施,用于安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行。此类是线程安全的:多个线程可以共享单个 Timer 对象而无需进行外部同步。java.util.TimerTask由 Timer 安排为一次执行或重复执行的任务。

2、示例代码该示例实现这样一个功能,在系统运行期间,每30分钟,系统自动检查连接池中的可用连接数,并输出到日志中。首先创建一个需要定时执行的任务类,这个任务类需要继承TimerTask,然后重写run()方法,run()方法体中的代码就是定时需要执行的操作,在本demo中,就是获取连接池中当前可用连接数,并输出到日志中,具体实现代码如下:public class TaskAvailableConnectNumber extends TimerTask { private Logger log = Logger.getLogger(TaskAvailableConnectNumber.class); private ConnectionPool pool=ConnectionPool.getInstance(); @Override publicvoid run() { log.debug(“当前连接池中可用连接数”+pool.getAvailableConnectNumber()); }}下面定义一个监听器,负责在应用服务器启动时打开定时器,监听器需要实现ServletContextListener接口,并重写其中的contextInitialized()和contextDestroyed()方法,代码如下:public class OnLineListener implements ServletContextListener{ private Logger log = Logger.getLogger(OnLineListener.class); Timer timer = null; //在应用服务器启动时,会执行该方法 publicvoid contextInitialized(ServletContextEvent arg0) { //创建一个定时器,用于安排需要定时执行的任务。 timer = new Timer(); //为定时器安排需要定时执行的任务,该任务就是前面创建的任务类TaskAvailableConnectNumber,并指定该任务每30分钟执行一次。 timer.schedule(new TaskAvailableConnectNumber(), 0, 30*60*1000); log.debug(“启动定时器”); } //应用服务器关闭时,会执行该方法,完成关闭定时器的操作。public void contextDestroyed(ServletContextEvent arg0) { if(timer!=null){ timer.cancel();//关闭定时器 log.debug(“—–定时器销毁——–“); } }}监听器要想正常运行,需要在web.xml文件中进行配置,配置信息如下:<!– 监听器配置开始 –> <listener> <listener-class> cn.sdfi.listen.OnLineListener </listener-class> </listener><!– 监听器配置结束 –>以上步骤完成后,一个简单的定时器就算开发完成了。


java中怎么实现定时功能? - 网络|
  • html css烟花特效 |css样式 不继承
  • html css烟花特效 |css样式 不继承 | html css烟花特效 |css样式 不继承 ...

    java中怎么实现定时功能? - 网络|
  • 求推荐!你用的不错的无损音乐网站? - 网络|
  • 求推荐!你用的不错的无损音乐网站? - 网络| | 求推荐!你用的不错的无损音乐网站? - 网络| ...

    java中怎么实现定时功能? - 网络|
  • 如何用数据线将电脑网络共享给手机? - 网络|
  • 如何用数据线将电脑网络共享给手机? - 网络| | 如何用数据线将电脑网络共享给手机? - 网络| ...