夏椰の東屋

- お遊び記録 -

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  108  : 記事  1  : コメント  3974  : トラックバック  30

ニュース


落書きしてね♪

IAM
僕がとった写真です。
ご自由にお使いください。

フィードメーター - 夏椰の東屋 track feed
広告


記事カテゴリ

書庫

日記カテゴリ

Other Site From Kaya

よく、定期間隔で処理をしたい場合、Thread.sleep()を使用したりするかと思いますが、

そのときに、日付/時刻を変えたら、

スリープ時間が予想以上にかかる!

それは、日付時刻を見てスリープ時間をチェックしているためのようで・・・

以下のソースを、VM上Linuxで動作確認。

JavaのバージョンはJava5です。


import java.util.Date;

public class SleepTest {
    /**
     * @param args
     * @throws UnknownHostException 
     */
    public static void main(String[] args) {
        Sleeper s = new Sleeper();
        s.start();
    }
}
class Sleeper extends Thread {
    public void run() {
        Date d = null;
        while(true) {
            d = new Date(System.currentTimeMillis());
            System.out.println("before sleep:" + d.toString());
            try {
                Thread.sleep(1000);
            } catch(InterruptedException iEx){ 
                iEx.printStackTrace();
                break;
            }
            d = new Date(System.currentTimeMillis());
            System.out.println("after sleep:" + d.toString());
        }
    }
}
======== 実行結果 ========
before sleep:Thu Feb 12 00:00:41 JST 2009
after sleep:Thu Feb 12 00:00:42 JST 2009
before sleep:Thu Feb 12 00:00:42 JST 2009
after sleep:Thu Feb 12 00:00:43 JST 2009
before sleep:Thu Feb 12 00:00:43 JST 2009

<==== date -s 2009/2/12 を実行して 2009年  2月 12日 木曜日 00:00:00 JST に変更
#1分ぐらい待つのか!?と思った時位に・・・

after sleep:Thu Feb 12 00:00:44 JST 2009
before sleep:Thu Feb 12 00:00:44 JST 2009
after sleep:Thu Feb 12 00:00:45 JST 2009
before sleep:Thu Feb 12 00:00:45 JST 2009
after sleep:Thu Feb 12 00:00:46 JST 2009
before sleep:Thu Feb 12 00:00:46 JST 2009
 





NTPとか、うっかりコマンドで変更した時に

動作待ち時間が変わるかも・・・だから気をつけなきゃって思った瞬間でした。

 

#  そんなこんなで数ヶ月DB触っていない・・・・(泣

投稿日時 : 2009年2月13日 17:43

コメント

No comments posted yet.

Post Feedback

タイトル
名前
Url:
コメント