0

マルチスレッドコードでは、System.nanoTime()は、スレッドが再スケジュールされるたびに小さな不正確さを生成しますか?はいの場合、このエラーは累積しますか?これはシングルスレッドコードにも当てはまりますか?

たとえば、スレッドが実行を開始すると、最初にSystem.nanoTime()を使用して時刻を取得し、スレッドブロックを終了する直前に、同じSystem.nanoTime()を使用して時刻を記録します。

4

1 に答える 1

1

「小さな不正確さ」とはどういう意味ですか?ナノ秒の分解能がSystem.nanoTime()得られますが、測定される経過時間の精度については保証されません。私の知る限り、呼び出しSystem.nanoTime()によってスレッドのスケジューリングが中断されることはありません。メソッドの呼び出しと実行には少額のコストがかかりますが、それだけです。(もちろん、これらの呼び出しをたくさん行うと、十分な数の呼び出しを行うと、かなりのCPU時間が蓄積されます。)

于 2013-02-24T09:23:42.560 に答える