线程睡眠在java内部是如何工作的?
这可能是一个愚蠢的问题,但我已经研究了很多,我没有得到任何令人满意的知识。 有人能帮我理解吗 我的代码线程睡眠在java内部是如何工作的?,java,Java,这可能是一个愚蠢的问题,但我已经研究了很多,我没有得到任何令人满意的知识。 有人能帮我理解吗 我的代码 public class sleepclass extends Thread { public static void main(String[] args) { sleepclass t1 = new sleepclass(); sleepclass t2 = new sleepclass(); t1.start();
public class sleepclass extends Thread {
public static void main(String[] args) {
sleepclass t1 = new sleepclass();
sleepclass t2 = new sleepclass();
t1.start();
t2.start();
}
public void run() {
for (int i = 1; i < 5; i++) {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
System.out.println(e);
}
System.out.println(i);
}
}
}
现在根据输出,我可以看到两个线程都进入睡眠状态。两者同时出现
我的问题是:
一,。既然睡眠是一种静态的方法,那么如何同时工作和睡眠呢?(请用外行解释)
Thread.sleep()
睡眠当前线程。它对其他地方没有影响
如果您想让一个线程休眠,而另一个线程不在当前代码中,则必须有某种指示器来控制它。例如布尔
标志,然后检查:
if(shouldSleep) {
Thread.sleep(5000);
}
否则,所有线程将执行相同的代码,所有线程将休眠5秒。这是一个静态方法--它会阻止当前线程,它被称为inAh。谢谢,我正在寻找一个重复的线程。不是你的down voter,但可能不需要它answer@HovercraftFullOfEels你能用更好的方式解释一下吗。。只是问问,睡眠在体内起什么作用?我是说某种超时?在javascript机制中,如果是,我们也可以休眠任何api调用吗?@hovercraftfullofels是的,我回答了“如何使一个线程休眠而不是另一个线程”部分。否则被骗者就足够了(或者如果我在寻找被骗者时找到了它)。@alesio.rian这真的很重要吗?线程休眠(停止执行代码)。这是一个你不应该太在意的内在机制,特别是如果你是初学者的话。
if(shouldSleep) {
Thread.sleep(5000);
}