关于java线程的睡眠状态

时间:2011-02-04 16:33:43

标签: java

线程类中的休眠函数是static.i读取休眠函数可以使线程在特定时间内休眠,而其他线程正在运行。

由于sleep函数是静态的...当它被调用时它将适用于所有threads.how它将用于使特定线程保持在睡眠状态。

5 个答案:

答案 0 :(得分:2)

Thread.sleep();

将把当前执行该代码的线程置于睡眠模式

  

使 当前正在执行的线程 暂停(暂时停止执行)指定的毫秒数。

答案 1 :(得分:1)

sleep方法不适用于所有线程,当被调用时,它获取其中的当前线程(可能使用另一个静态方法Thread.currentThread())。由于堆/堆栈可见性原则,方法调用仅适用于当前线程,并且不会修改任何静态字段(它是自包含的)。

答案 2 :(得分:0)

调用时,它将使当前正在执行的线程休眠。

答案 3 :(得分:0)

根据java文档:

 public static void sleep(long millis,
                             int nanos)
                      throws InterruptedException

使当前正在执行的线程暂停(停止执行)指定的毫秒数加上指定的纳秒数。该线程不会失去任何监视器的所有权。

因此,当您致电sleep()时,您将睡眠当前线程。

答案 4 :(得分:0)

由于该方法取决于 jvm 调用线程的状态而不是对象所代表的线程,因此它必须是静态的,否则其他任何内容都会产生误导。

实现它以处理Thread实例不会很好,因为如果保持对jvm资源的锁定(link),则停止其他线程会导致完整的jvm停止。