java Threads中的sleep方法,具体暂停什么?

问题描述

根据我目前获得的信息,我了解到 Thread.sleep() 会暂停调用方法的线程。例如,如果我在 main 方法调用它,它会暂停 main 的执行。如果我在某个线程的运行中调用它,它只会暂停该线程。 我需要专业知识来确认我的理解,因为我在网络上的太多信息中迷失了方向。 我一直在练习应用这个,抛出以下内容

一个线程类,Player1:

public class Player1 extends Thread{

public void run()
{
   
    try {
        System.out.println("I'm going to sleep");
        Thread.sleep(2000);
        System.out.println("I'm awake");
    } catch (InterruptedException ex) {
        
    }
 }
 }

一个线程类,客户端:

   public class Clients extends Thread {

    public void run()
    {   
     printer2(10);
    }

     public synchronized static void printer2(int val)
     {
  
        System.out.println(val);
        System.out.println(val);
        System.out.println(val);
        System.out.println(val);
        System.out.println(val);
        System.out.println(val);

        }
     }

它们在 main 方法中被调用

    public static void main(String[] args) throws InterruptedException {
    Clients c1 = new Clients(10);
    Player1 p = new Player1();
     p.start();
    c1.start();
    }

会发生什么(根据我的理解):sleep 仅应用于 player1 线程的执行,而不应用于主线程或客户端线程。

同样,如果我在 Clients 线程的运行中添加 sleep 方法,它会独立于其他线程休眠。例如:它自己休眠 1 秒,它也休眠 1 秒(即使这 2 1 秒重叠)

如果我错了请纠正我 提前致谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)