当前位置: 技术问答>java相关
有关新建Thread的时间问题?
来源: 互联网 发布时间:2015-09-16
本文导语: 这段代码: long start=System.currentMilltime(); Thread t=new Thread(); long end =System.currentMilltime(); System.out.println("time:"+(end-time)); 为什么有时输出是60,有时是50,有时是0。 是不是与操作系统的调度有关?我的OS是WIN98 ...
这段代码:
long start=System.currentMilltime();
Thread t=new Thread();
long end =System.currentMilltime();
System.out.println("time:"+(end-time));
为什么有时输出是60,有时是50,有时是0。
是不是与操作系统的调度有关?我的OS是WIN98
long start=System.currentMilltime();
Thread t=new Thread();
long end =System.currentMilltime();
System.out.println("time:"+(end-time));
为什么有时输出是60,有时是50,有时是0。
是不是与操作系统的调度有关?我的OS是WIN98
|
应该是这样,而且它只能出略的判断一下,因为System.currentMilltime()也会因为进行方法调用而消耗时间的!
|
nirvana_hg说得对,不能等一个线程死掉之后再start他
大多数系统只能精确到10毫秒,有误差是正常的。这和操作系统确实很有关系。如果你的操作系统支持,java还有一个支持精确到纳秒的方法呢!
大多数系统只能精确到10毫秒,有误差是正常的。这和操作系统确实很有关系。如果你的操作系统支持,java还有一个支持精确到纳秒的方法呢!
|
sleep(long millis, int nanos)
Causes the currently executing thread to sleep (cease execution) for the specified number of milliseconds plus the specified number of nanoseconds.
Causes the currently executing thread to sleep (cease execution) for the specified number of milliseconds plus the specified number of nanoseconds.
|
Thread的纳秒级方法:
static void sleep(long millis, int nanos)
Causes the currently executing thread to sleep (cease execution) for the specified number of milliseconds plus the specified number of nanoseconds.
不过没用,没有谁的机器能支持到纳秒的
static void sleep(long millis, int nanos)
Causes the currently executing thread to sleep (cease execution) for the specified number of milliseconds plus the specified number of nanoseconds.
不过没用,没有谁的机器能支持到纳秒的