美文网首页
java内置锁的限制无法中断线程无法设置超时终止死锁的线程的办法

java内置锁的限制无法中断线程无法设置超时终止死锁的线程的办法

作者: 每天学点编程 | 来源:发表于2018-02-19 02:56 被阅读187次

请关注我的微信公众号

个人微信公众号

技术交流群 (仅作技术交流):642646237

​请关注我的头条号:

内置锁方便但限制多

1.线程因为等待内置锁而进入阻塞之后,就无法中断该线程了;
2.尝试获取内置锁时,无法设置超时;
3.获得内置锁,必须使用synchronized块。

这种用法的限制是获取锁和释放锁的代码必须严格嵌在同一个方法中。

内置锁无法中断

使用内置锁时,由于阻塞的线程无法被中断,程序不可能从死锁中恢复。




程序将永远死锁下去——跳出死锁唯一的方法是终止JVM的运行。

终止死锁的线程的办法

没有。
所有这类方法都被证明有缺陷而不推荐使用。

线程等待内置锁而陷入死锁,且不能中断其等待锁的状态,那么要终止死锁线程就只剩下终止JVM运行这条路了。

synchronized函数是“语法糖”

等价于将函数体按以下形式进行包装:


相关文章

  • java内置锁的限制无法中断线程无法设置超时终止死锁的线程的办法

    请关注我的微信公众号 个人微信公众号 技术交流群 (仅作技术交流):642646237 ​请关注我的头条号: 内置...

  • Java中断

    背景 Java线程除非线程本身愿意,否则无法提前终止,为了解决线程提前终止的问题,引入了中断机制。 线程自能只能自...

  • 死锁与问题排查

    本篇文章从Java线程、锁层面去考虑考虑死锁。 死锁:多个线程,彼此持有对方需要的锁资源,谁也不肯释放,谁也无法进...

  • 线程中断

    Java的中断是一种协作机制,线程中断不会终止线程的运行,但是可以通过线程中断来实现终止线程运行。 线程在不同状态...

  • 关闭线程

    终止线程 stop方法,已经被弃用,无法预期 interrupt interrupt方法其作用是中断此线程(此线程...

  • 【多线程】——3.线程的中断

    线程中断的概念 java线程中断是一种协作机制 通过中断并不能直接终止线程的运行 需要被中断的线程自己处理中断 (...

  • java 多线程死锁

    java经典问题多线程死锁问题。因为多个线程都在等待根本不可能被释放的锁,从而导致所有的任务都无法继续运行下去。 ...

  • Java concurrency《防止死锁》

    Java concurrency《防止死锁》 常见预防死锁的办法 有顺序的锁 具有超时时间的锁 死锁的检测 有顺序...

  • 死锁,活锁,饿死

    死锁:线程1等待线程2互斥持有的资源,而线程2也在等待线程1互斥持有的资源,两个线程都无法继续执行。 活锁:拿到锁...

  • 死锁 及 图形工具查看

    死锁: 线程1等待线程2互斥持有的资源,而线程2也在等待线程1互斥持有的资源,2个线程都无法继续执行 活锁: 线程...

网友评论

      本文标题:java内置锁的限制无法中断线程无法设置超时终止死锁的线程的办法

      本文链接:https://www.haomeiwen.com/subject/fabvtftx.html