Java 是否有必要扩展thread类以使用sleep方法。。?
所以我在学习java,我有点困惑。。。 所以,在学习线程时,我了解到有必要扩展线程类或实现可运行类。 在执行此程序时,使用Thread.sleep()而不执行上述任何过程 链接: 有人能解释一下发生了什么事吗?Java 是否有必要扩展thread类以使用sleep方法。。?,java,multithreading,applet,Java,Multithreading,Applet,所以我在学习java,我有点困惑。。。 所以,在学习线程时,我了解到有必要扩展线程类或实现可运行类。 在执行此程序时,使用Thread.sleep()而不执行上述任何过程 链接: 有人能解释一下发生了什么事吗?Thread.sleep()是一种static方法,因此您可以在任何地方调用它 class RunMe implements Runnable { @Override public void run() { for (int i = 0; i <
Thread.sleep()
是一种static
方法,因此您可以在任何地方调用它
class RunMe implements Runnable {
@Override
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println("Hello");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
类RunMe实现Runnable{
@凌驾
公开募捐{
对于(int i=0;i<100;i++){
System.out.println(“你好”);
试一试{
睡眠(1000);
}捕捉(中断异常e){
e、 printStackTrace();
}
}
}
}
请记住,所有Java代码都在一个线程中运行,因此调用thread.sleep()
可以在任何地方进行。使用thread.sleep(X)实际上是在暂停执行时间X
class RunMe implements Runnable {
@Override
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println("Hello");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
这适用于向服务器或数据库发送请求。没有人希望一次性向数据库或服务器发送巨大的请求
小份总是合理的。您可以划分请求并通过等待指定的持续时间发送它们
这是Thread.sleep()的重要用法之一
有一种处理线程暂停的非常合适的方法,即wait/notify。我建议用它。
你可以在那里查看;
之所以可以使用Thread.sleep而不实际创建线程,是因为主程序也在线程上运行。你只是在主线程上调用sleep。当您调用Thread.sleep时,java将为您确定它实际运行在哪个线程上。如果您正在使用的教程告诉您扩展
Thread
找到一个新线程。通常,实现Runnable
(可能作为lambda方法)并将其传递给线程
实例(或管理线程的对象)。另外,Thread.sleep
在真正的程序中是没有用的-你需要一个某种计时器。不Thread.sleep()
是Thread
类中的。您不需要使用线程
实例来调用它。这是一个很好的例子,但我认为OP是在问,当程序根本不创建任何新的线程
实例时,程序如何能够调用线程.sleep()
。@SolomonSlow-很好的调用-FTFYNo!唯一的原因是Thread.sleep
是一种静态方法。@Seelenvirtuose,当您进入范围时,您是正确的。托马斯解释的是两个代码1->ans 2->之间的区别