1. sleep的用途、简单用例
使当前线程睡眠指定的时间,哪个线程调用Thread.sleep则哪个线程就会睡眠(谁调用谁休眠)。睡眠的意思:让出cpu的占用时间
2. sleep注释事项
- 只针对当前线程,即谁调用sleep()谁就休眠。
- 睡眠时间并不准确,取决于操作系统的计时器和调度器。
- 线程调用sleep时不会释放锁:在synchronized块里面进行sleep操作,或已获取锁的线程中执行sleep,该线程不会释放锁。与Object.wait方法不同。
- 其他线程可中断sleep状态的进程,使其抛出InterruptedException异常。
3. sleep的线程不会释放锁
如下代码片段,thread1首先获得了锁,并休眠3秒,此时thread2需要一直等待ÿ