java - java线程中的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();
}
会发生什么(根据我的理解):睡眠仅适用于 player1 线程的执行,而不适用于主线程或客户端线程。
同样,如果我在 Clients 线程的运行中添加一个 sleep 方法,它将独立于其他线程而休眠。例如:它自己休眠 1 秒,它也休眠 1 秒(即使这 2 1 秒重叠)
如果我错了请纠正我提前谢谢!
解决方案
推荐阅读
- kubernetes-ingress - ALB 入口路径模式和重写
- javascript - 需要动态创建的按钮在 Angular 中独立工作
- javascript - NodeJS - 'config' 无法读取表单配置文件
- parsing - 无法将匹配规则的字符与 PEG 解析器匹配
- javascript - Node.js“url.parse”替换
- android-studio - 我用它从 kotlin 的 assets 文件夹中打开 pdf,但它不起作用,并告诉我 Manifest merge failed 出现多个错误,请参阅日志
- html - 如何为伪元素前后设置动画?
- django - 构建 Django 表单时的查询集
- javascript - 在 Kotlin 中使用带有参数的 Javascript 函数
- javascript - Why won't JavaScript code calculate months between two HTML date time inputs?