阻塞状态与等待状态的区别:
实际上两者不用刻意区分两者,因为两者都会暂停线程的执行。
两者的区别是:进入等待状态是线程主动的,而进入阻塞状态是被动的。更进一步的说,进入阻塞状态是在同步, 而进入等待状态是在同步代码之内。
两者的共同点是:
都暂时停止线程的执行,线程本身不会占用CPU时间片。
区别是调用了sleep方法的线程直接受CPU调度,而wait则是等待另外的java线程在持有同一个对象锁的同步块,方法中进行notify调用。