java多线程
文章平均质量分 91
吗吗哈哈
喝光大佬的卡布奇诺
展开
-
wait/notify/notifyAll 方法的使用注意事项?
为什么wait必须在synchronized保护的同步代码种使用?首先我们来看看wait方法的源码注释是怎么写的?//wait method should always be used in a loop:synchronized (ojb) { while(condition does not hold) obj.wait(); ... //Perform action appropriate to condition}//This method should only be calle原创 2021-03-09 15:26:26 · 216 阅读 · 0 评论 -
线程是如何在 6 种状态之间转换的?方法的使用注意事项?
线程的6种状态就像生物从出生到长大、最终死亡的过程一样,线程也有自己的生命周期,在 Java 中线程的生命周期中一共有 6 种状态。New(新创建)Runnable(可运行)Blocking(被阻塞)Waiting(等待)Timed Wating(计时等待)Terminated(被终止)如果想要确定线程当前的状态,可以通过getState()方法,并且线程在任何时刻只能处于1种状态。New 新创建下面我们逐个介绍线程的 6 种状态,如图所示,首先来看下左上角的 New 状态。原创 2021-03-09 14:53:59 · 197 阅读 · 0 评论 -
如何正确停止线程?为什么 volatile 标记位的停止方法是错误的?
线程停止原理通常情况下,我们不会手动停止一个线程,而是允许线程运行到结束,然后让它自然停止。但是依然会有许多特殊的情况需要我们提前停止线程,比如:用户突然关闭程序,或程序运行出错重启等。在这种情况下,即将停止的线程在很多业务场景下仍然很有价值。尤其是我们想写一个健壮性很好,能够安全应对各种场景的程序时,正确停止线程就显得格外重要。但是Java 并没有提供简单易用,能够直接安全停止线程的能力。为什么不强制停止?而是通知、协作对于 Java 而言,最正确的停止线程的方式是使用 interrupt。但 i原创 2021-03-07 20:56:50 · 405 阅读 · 0 评论