Guava の Stopwatch を使ってサンプルコードを書いてみた.
よくある System.currentTimeMillis()
を使わなくて済むので,コード的にも目的が明らかで見通しが良くなる.
Stopwatch (Guava: Google Core Libraries for Java 18.0 API)
サンプルコード
OnYourMark
っていうクラス名には特に意味はなくて,世界陸上とかでスタートするときに聞くのでそれをクラス名にしてみただけw
package com.kakakakakku; import com.google.common.base.Stopwatch; import java.util.concurrent.TimeUnit; public class OnYourMark { public static void main(String[] args) throws InterruptedException { // createUnstarted() を使うと計測開始時刻を制御することもできる Stopwatch sw = Stopwatch.createStarted(); while(true) { System.out.println(String.valueOf(sw.elapsed(TimeUnit.SECONDS)) + "秒経過"); Thread.sleep(5000); if (sw.elapsed(TimeUnit.SECONDS) > 60) { sw.stop(); sw.reset(); System.out.println("停止します"); break; } } } }
実行結果
0秒経過 5秒経過 10秒経過 15秒経過 20秒経過 25秒経過 30秒経過 35秒経過 40秒経過 45秒経過 50秒経過 55秒経過 60秒経過 停止します