由于sleep函数是静态的...当它被调用时它将适用于所有threads.how它将用于使特定线程保持在睡眠状态。
答案 0 :(得分:2)
答案 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停止。