问题描述
根据我目前获得的信息,我了解到 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);
}
}
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 (将#修改为@)