-3

30秒ごとに実行するスレッドをJavaで作成し、mySQLのデータベースの特定のレコードを削除する必要があります。よろしくお願いします。

4

3 に答える 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 に答える