1.所属不同:
sleep()是Thread的静态类方法 ,wait()是Object的普通方法。
2.使用语法不同:
sleep可以用于任意代码位置.(不管是否在加锁的代码中),当前线程休眠!!
wait()只能用于同步中,(加锁状态下). 表示当前线程不参与…进入无限等待..
3: 状态和唤醒方式不同
sleep 不需要唤醒,进入的计时等待.时间到自然就继续,特点如果有锁,不会释放锁.其实跟锁无关. wait方法先释放锁,进入的无限等待.如果不唤醒不会自动醒.
总结:sleep是线程休眠一段时间后继续执行,期间保持对象锁不释放;wait是线程等待并释放对象锁,直到其他线程通知后才继续执行。