30秒ごとに実行するスレッドをJavaで作成し、mySQLのデータベースの特定のレコードを削除する必要があります。よろしくお願いします。
質問する
139 次
3 に答える
2
私はちょうど同じ理由でこのようなことをしました、これが私のコードです:
package com.xxx.thread;
public class Updater implements Runnable{
@Override
public void run() {
while(true) {
try {
//do work here
Thread.sleep(1000*60*60); //sleep time in ms
} catch (InterruptedException ex) {
}
}
}
}
スレッドを開始するには:
Thread myThread = new Thread(new Updater());
myThread.start();
于 2012-05-29T14:14:57.913 に答える
2
コードサンプルが必要ですか?
public void schedule(){
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
//TODO write your code
}
}, 1000,1000*30);
}
于 2012-05-29T14:17:28.453 に答える
0
私は受け入れられた答えに同意しません。Thread.sleep
不正確で面倒なので、おそらく問題を解決するための最悪の方法です(ループ+呼び出しsleep
+キャンセルメカニズムが必要です)。最も受け入れられる方法は、ScheduledThreadPoolExecutorを使用することです。
ScheduledThreadPoolExecutor exec = new ScheduledThreadPoolExecutor(1);
exec.submit(new Runnable() {
public void run() {
// update db here
}
}, 0, 30, TimeUnit.SECONDS);
于 2012-05-29T15:17:55.897 に答える