2016-05-26 9 views
-2

スレッドセーフな経過時間を測定するには、単純で高性能なスレッドセーフな低精度タイマー/手法(数百ミリ秒まで)が必要です関数。Java 1.8:スレッドセーフな方法で経過時間を測定する

どのようにJavaでそれを達成するには?

私はSystem.currentTimeMillisSystem.nanoTimeで見ていたが、どれも任意のスレッドの安全性の保証に言及していない

+0

私はもはやJava 1.8 APIリファレンスを持っていませんが、おそらく 'System.currentTimeMillis()'はそれまでの日付ですか?あるいは、 'java.util.Date'のnullaryコンストラクタは、現在の時刻を表す' Date'を与えています。そして 'getTime()'メソッドを使用して、エポックからミリ秒単位で取得することができます。いずれのアプローチでも簡単なタイマーをサポートする必要があります。 –

+0

'currentTimeMillis'はスレッドセーフですか? – lolski

+0

'currentTimeMillis()'への呼び出しは、任意のコード(JREとユーザコード)からいつでも発生する可能性があるため、明示的に言及しているドキュメントは見つかりません。さまざまなソースからのコールを確実に同期させる方法はありません。 –

答えて

2

それは必要はありませんので、スレッドsafetynessに関するドキュメントはありません。

このメソッドは、基になるオペレーティングシステムから長い値を取得して返します。

スレッドセーフの問題はどこにあると思いますか?

関連する問題