Java 哪个Thread.sleep命令暂停哪个线程?

Java 哪个Thread.sleep命令暂停哪个线程?,java,multithreading,sleep,Java,Multithreading,Sleep,我有四个线程声明。睡眠。。。在下面每个声明都标有第1行到第6行。我的问题是,哪些声明使哪些线程暂停 class Runa extends Thread{ public void run(){ try{ // Line #1 Thread.sleep(500); //Line #2 this.sleep(500); }catch(Exception e) {}

我有四个线程声明。睡眠。。。在下面每个声明都标有第1行到第6行。我的问题是,哪些声明使哪些线程暂停

class Runa extends Thread{
    public void run(){
        try{
            // Line #1
            Thread.sleep(500);
            //Line #2
            this.sleep(500);
        }catch(Exception e) {}
    }
}

class Runb implements Runnable {
    Thread t;

    Runb() {
        t = new Thread(this);
        t.start();

        try{
            //Line #3
            Thread.sleep(500);

        }catch(Exception e){ }
    }

    @Override
    public void run() {
     
        try {
            do {

                // Line #4
                Thread.sleep(2000);
                // Line #5
                // t.sleep(500);
                count++;
            } while (count < 10);
        } catch (InterruptedException e) {

        }

    }
}

public class thread2Runnable2 {
    public static void main(String args[]) {          
        Runa rua = new Runa();
        rua.start();
        //Line #6
        rua.sleep(500); 
       
        Runb runb = new Runb();    
    }
}
我的假设正确吗?

该方法是一种静态方法,它:

根据系统计时器和调度程序的精度和准确性,使当前正在执行的线程休眠并暂时停止执行指定的毫秒数

当前执行的线程是调用该方法的线程。因此,无论哪个线程调用sleep,都是睡眠线程。据我所知,您的假设似乎是正确的。

是一个静态方法,因此无论您调用哪个对象,它都将始终作用于当前正在执行的线程

事实上,您可以在一个实例上调用这个方法,例如,运行语法方面的调用,这是Java的一个怪癖,可能会让人非常困惑。许多IDE和其他代码质量工具会将此类调用作为警告进行强调,因为对象引用与调用完全无关,因此可能会误导阅读代码的人


如果使用正常的静态调用语法Thread.sleepnnn,您会发现没有传递对象引用,即使不阅读文档,也很容易得出结论,即唯一合理的行为是对当前线程进行操作。

rua.sleep;对不起,我用的是帐单。此设备正在杀死我。Thread.sleeplong是一种静态方法,用于休眠当前线程。当前线程是执行代码的线程。因此,无论哪个线程调用sleep,都是睡眠线程。据我所知,你的假设似乎是正确的。你的意思是线程rua=新的rua;否则rua rua=新线程;不会编译。是的,你是对的。通过调试它并给线程命名,你可以很容易地检查它是调用的。通过一个线程实例睡眠,但最终暂停另一个线程有时是相当混乱的。
Line #1 pause Runa thread
Line #2 pause Runa thread
Line #3 pause the main thread
Line #4 pause t thread
Line #5 pause t thread
Line #6 pause the main thread