1) sleep
是
Thread类中的
方法,而
wait
是
Object
类中的方法,两者的定义位置不同.
sleep:
wait:
2) sleep
不需要强制和
synchronized
配合使用,但
wait
需要
和
synchronized
一起用。
直接调用wait方法就会报非法状态异常,所以说wait必需搭配"锁"进行使用.只有当当前线程拿到了对象锁之后才能调用wait方法
3) sleep
在睡眠的同时,不会释放对象锁的,但
wait
在等待的时候会释放对象锁。
4) 相同点:线程的状态都是相同的
TIMED_WAITING .