我正在构建一个连接到路由器的应用程序,获取一些数据并将获取的数据插入数据库 .
我需要每30秒从路由器获取一次数据 . 然后返回使用新获取的数据更新数据库 .
我不知道如何实现该计时器机制(它类似于中断服务例程机制) .
我是Java新手,任何帮助?我应该使用线程吗?我简要地阅读了关于线程的内容,但并不知道它们是如何工作的
编辑:请注意我在主要方面还有其他事情要做 . 主要是执行几个功能 . 但是,每30秒我想执行一个附加功能 .
更简洁的方法是安排定期任务 .
您可以使用不同的API:
ScheduledExecutorService.scheduleAtFixedRate(...)
Timer.scheduleAtFixedRate(..)
两者都会定期执行您的代码 .
因为你需要运行其他代码,你可以做
ScheduleExecutorService ses = Executors.newSingleThreadScheduledExecutor(); ses.scheduleAtFixedRate(new Runnable() { public void run() { Data data = getDataFromRouter(); updateDatabase(data); } }, 0, 30, TimeUnit.SECONDS);
另外,我会有一个像这样的简单循环 .
while(true) { Data data = getDataFromRouter(); updateDatabase(data); Thread.sleep(30 * 1000); }
您至少需要一个线程,但是从一个线程开始 .
2 回答
更简洁的方法是安排定期任务 .
您可以使用不同的API:
ScheduledExecutorService.scheduleAtFixedRate(...)
Timer.scheduleAtFixedRate(..)
两者都会定期执行您的代码 .
因为你需要运行其他代码,你可以做
另外,我会有一个像这样的简单循环 .
您至少需要一个线程,但是从一个线程开始 .