-2
スレッドセーフな経過時間を測定するには、単純で高性能なスレッドセーフな低精度タイマー/手法(数百ミリ秒まで)が必要です関数。Java 1.8:スレッドセーフな方法で経過時間を測定する
どのようにJavaでそれを達成するには?
私はSystem.currentTimeMillisとSystem.nanoTimeで見ていたが、どれも任意のスレッドの安全性の保証に言及していない
スレッドセーフな経過時間を測定するには、単純で高性能なスレッドセーフな低精度タイマー/手法(数百ミリ秒まで)が必要です関数。Java 1.8:スレッドセーフな方法で経過時間を測定する
どのようにJavaでそれを達成するには?
私はSystem.currentTimeMillisとSystem.nanoTimeで見ていたが、どれも任意のスレッドの安全性の保証に言及していない
それは必要はありませんので、スレッドsafetynessに関するドキュメントはありません。
このメソッドは、基になるオペレーティングシステムから長い値を取得して返します。
スレッドセーフの問題はどこにあると思いますか?
私はもはやJava 1.8 APIリファレンスを持っていませんが、おそらく 'System.currentTimeMillis()'はそれまでの日付ですか?あるいは、 'java.util.Date'のnullaryコンストラクタは、現在の時刻を表す' Date'を与えています。そして 'getTime()'メソッドを使用して、エポックからミリ秒単位で取得することができます。いずれのアプローチでも簡単なタイマーをサポートする必要があります。 –
'currentTimeMillis'はスレッドセーフですか? – lolski
'currentTimeMillis()'への呼び出しは、任意のコード(JREとユーザコード)からいつでも発生する可能性があるため、明示的に言及しているドキュメントは見つかりません。さまざまなソースからのコールを確実に同期させる方法はありません。 –