我了解到Thread.sleep()
会暂停当前运行的线程,在指定的时间后,该线程将重新回到可运行状态,等待运行的机会。
另外,如果在synchronized
上下文中调用sleep()
,它不会释放它所持有的锁。所以我想知道它什么时候会释放锁。如果处于睡眠状态的线程永远没有机会运行,那么它将始终保留锁,并阻止其他线程进入同步块/方法。
我不确定我是否提出了一个有效的问题。但请帮忙解答一下。
我了解到Thread.sleep()
会暂停当前运行的线程,在指定的时间后,该线程将重新回到可运行状态,等待运行的机会。
另外,如果在synchronized
上下文中调用sleep()
,它不会释放它所持有的锁。所以我想知道它什么时候会释放锁。如果处于睡眠状态的线程永远没有机会运行,那么它将始终保留锁,并阻止其他线程进入同步块/方法。
我不确定我是否提出了一个有效的问题。但请帮忙解答一下。
Thread.sleep()
可能不是一个好主意。如果你现在可以做些什么,那就立即去做。如果你必须等待某些东西才能开始做事情,那就等待那个东西而不是睡觉。 - David SchwartzThread.sleep()
有合法的用途,但它经常被滥用。 - NPE