wait是Object中定义的方法,它可以指定时间也可以不指定时间,调用这个函数时当前线程进入冻结状态,在锁对象的线程等待池中等待,wait冻结的线程如果没有指定时间则需要通过调用notify进行线程唤醒。线程冻结时释放执行权释放锁。释放锁的意思是使用同一个锁对象的其他方法或者代码块可以进入同步方法或者代码块了。
sleep是Thread中的方法,它需要指定时间,指定时间过后自动唤醒,无需第三方唤醒,sleep释放执行权,不释放锁,所以此时线程虽然停止了,但是和其使用同一个锁对象的同步代码或者同步代码块不能进入执行。 |
|