Java线程和.sleep()混淆

Java线程和.sleep()混淆,java,multithreading,sleep,thread-sleep,Java,Multithreading,Sleep,Thread Sleep,大家好,很抱歉打扰你们,我有一个类,我在其中实现了runnable,然后我有一个run()方法,在这个方法中,我使用thread.sleep()每隔一段时间运行一个小程序。-这个方法没有任何问题,并且定期运行代码 然而,我对如何在类中的其他方法中使用thread.sleep()感到困惑,有人能告诉我正确的方向吗 如果事先简单道歉 代码示例: // Search product: returns list of matching titles public String[] find_titl

大家好,很抱歉打扰你们,我有一个类,我在其中实现了runnable,然后我有一个run()方法,在这个方法中,我使用thread.sleep()每隔一段时间运行一个小程序。-这个方法没有任何问题,并且定期运行代码

然而,我对如何在类中的其他方法中使用thread.sleep()感到困惑,有人能告诉我正确的方向吗

如果事先简单道歉

代码示例:

// Search product: returns list of matching titles
  public String[] find_titles(String title) throws RemoteException{
    try {
          Thread.sleep(5000);                                           //pause execution for 2s 
        } catch(InterruptedException e) {
          //error running the thread!
          System.exit(1);
    }
    ...
   }
Thread.sleep()
将导致当前线程休眠。如果在主执行线程中使用此选项,则主程序将暂停,而不执行其他操作。如果主线程调用可运行线程,则该线程将在调用
thread.sleep()
时暂停,但主线程或任何其他线程仍将运行。

thread.sleep()
将导致当前线程休眠。如果在主执行线程中使用此选项,则主程序将暂停,而不执行其他操作。如果主线程调用runnable,则该线程将在调用
thread.sleep()
时暂停,但主线程或任何其他线程仍将运行。

thread.sleep()
thread
类中的静态方法。这意味着它只休眠当前正在运行的线程

根据
JavaDoc
中的说明:

根据系统计时器和调度程序的精度和准确性,使当前执行的线程休眠(暂时停止执行)指定的毫秒数。线程不会失去任何监视器的所有权

在这里阅读更多关于

现在,这取决于您在哪里调用线程将处于睡眠状态的
Thread.sleep()
方法

我希望您能明白。

Thread.sleep()
Thread
类中的一个静态方法。这意味着它只休眠当前正在运行的线程

根据
JavaDoc
中的说明:

根据系统计时器和调度程序的精度和准确性,使当前执行的线程休眠(暂时停止执行)指定的毫秒数。线程不会失去任何监视器的所有权

在这里阅读更多关于

现在,这取决于您在哪里调用线程将处于睡眠状态的
Thread.sleep()
方法


我希望你能明白。

为什么
线程.睡眠
会因位置不同而有所不同?代码就是代码。因为它不是工作伙伴!您的代码只会将当前线程置于睡眠状态。如果在不执行其他操作的后台线程中调用,则程序的状态将不会发生任何可测量的变化。没有上下文,你的问题无法回答。对我来说,我仍然完全不明白你到底在问什么。如果现在的答案能回答你的问题,那太好了,他们比我更善于猜测。如果没有,那么你会想通过提供我们理解你的问题所需的所有细节来改进你的问题。我不想把完整方法的代码放在那里,因为它是学校项目的一部分,所以会被学校的剽窃软件拾取-幽默我想象一下只有一个系统。out.println(“测试”);在thread.sleep下面-imn发现打印会立即发生为什么
thread.sleep
会有任何不同,这取决于它在哪里?代码就是代码。因为它不是工作伙伴!您的代码只会将当前线程置于睡眠状态。如果在不执行其他操作的后台线程中调用,则程序的状态将不会发生任何可测量的变化。没有上下文,你的问题无法回答。对我来说,我仍然完全不明白你到底在问什么。如果现在的答案能回答你的问题,那太好了,他们比我更善于猜测。如果没有,那么你会想通过提供我们理解你的问题所需的所有细节来改进你的问题。我不想把完整方法的代码放在那里,因为它是学校项目的一部分,所以会被学校的剽窃软件拾取-幽默我想象一下只有一个系统。out.println(“测试”);在thread.sleep下面——imn发现的是,当我在另一个方法中使用它并称为thread.sleep(5000)时,打印会立即发生,例如,执行似乎没有发生pause@TotalNewbie在这种情况下,请给出适当的解释和一些示例代码是5000毫秒或5秒。这应该是显而易见的,但如果你期望5000秒,那就完全不同了!你看,当我在另一个方法中使用这个函数时,比如调用thread.sleep(5000)时,执行似乎不起作用pause@TotalNewbie在这种情况下,请给出适当的解释和一些示例代码。请注意Thread.sleep(5000)是5000毫秒或5秒。这应该是显而易见的,但如果你期望5000秒,那就完全不同了!