脑壳疼,今天傍晚看到sleep和wait时,头脑中的概念也的确是模糊不清,然后又是一顿搜索,明白了不少。
1.sleep 是属于Thread类,而wait是属于Object类的且必须和notify或notifyall 一起搭配使用。
sleep是线程控制自身的流程,而wait则属于线程间通信。该线程调用wait后将释放该对象的锁,等待指定的时间或者其他获得该对象锁的线程notify或notifyall,一旦再次获得该对象锁,将从调用wait处开始执行代码。
2.调用sleep的线程不会释放对象锁,而调用wait的线程会释放对象锁。
3.获得对象锁的方法:
3.1 执行该该对象的同步实例方法。
3.2执行该对象对应类的同步静态方法。
3.3执行该对象加同步锁的同步块。