System.currentTimeMillis()与System.nanoTime()

一直以为java的sleep不准,原来是测量方法错了--
一直都是用System.currentTimeMillis()来计算时间差,实际上这是不准确的,
System.currentTimeMillis()的返回有10到15毫秒误差,用来测量Thread.sleep(0)得到的要么是0要么是10或15, 但用System.nanoTime()来测量的话,误差不超过1毫秒.

 

  API 解释:

 

   

static long currentTimeMillis()
          返回以毫秒为单位的当前时间。
static long nanoTime()
          返回最准确的可用系统计时器的当前值,以毫微秒为单位。

 

 

 

你可能感兴趣的:(current)