农企新闻网

阻塞状态与等待状态有什么不同

发布者:马俊华
导读阻塞状态与等待状态的区别:实际上两者不用刻意区分两者,因为两者都会暂停线程的执行。两者的区别是:进入等待状态是线程主动的,而进入阻塞状态是被

阻塞状态与等待状态的区别:

实际上两者不用刻意区分两者,因为两者都会暂停线程的执行。

两者的区别是:进入等待状态是线程主动的,而进入阻塞状态是被动的。更进一步的说,进入阻塞状态是在同步, 而进入等待状态是在同步代码之内。

两者的共同点是:

都暂时停止线程的执行,线程本身不会占用CPU时间片。

区别是调用了sleep方法的线程直接受CPU调度,而wait则是等待另外的java线程在持有同一个对象锁的同步块,方法中进行notify调用。