sleep()方法(休眠)是线程类(Thread)的静态方法,调用此方法会让当前线程暂停执行指定的时间,将执行机会(CPU)让给其他线程,但是对象的锁依然保持,因此休眠时间结束后会自动恢复(线程回到就绪状态,请参考第66题中的线程状态转换图)。wait()是Object类的方法,调用对象的wait()方法导致当前线程放弃对象的锁(线程暂停执行),进入对象的等待池(wait pool),只有调用对象的notify()方法(或notifyAll()方法)时才能唤醒等待池中的线程进入等锁池(lock pool),如果线程重新获得对象的锁就可以进入就绪状态。
Thread类的sleep()方法和对象的wait()方法都可以让线程暂停执行,它们有什么区别?...
最新推荐文章于 2024-07-27 23:45:55 发布
本文详细解释了Java中Thread类的sleep()方法与Object类的wait()方法的区别。sleep()使当前线程暂停并保留对象锁,而wait()则释放锁并将线程置于等待池中,直到收到通知。
656

被折叠的 条评论
为什么被折叠?



