Java中线程等待和线程阻塞的区别?

1、一句话概括

在java中,线程阻塞状态是线程本身不可计划的,而线程等待状态是线程本身计划之内的。

2、相同点与不同点

相同点:
(1)都会暂停线程的执行。

区别点:
(1)线程进入阻塞状态是被动的, 而线程进入等待状态是主动的。
阻塞状态的被动:线程在同步代码外,获取对象锁失败时,线程进入阻塞状态;何时获取对象锁失败不可知,即线程阻塞状态是线程本身不可计划的。
等待状态的主动:线程在同步代码内,等待其他线程操作时,线程接入等待状态;何时等待其他线程操作可知,即线程等待状态是线程本身计划之内的。

你可能感兴趣的:(JAVA,java,spring,java-ee,spring,boot)