Java并发之嵌套管程锁死详解-创新互联

·嵌套管程死锁是如何发生的
·具体的嵌套管程死锁的例子
·嵌套管程死锁 vs 死锁

成都创新互联公司主营成武网站建设的网络公司,主营网站建设方案,app软件开发,成武h5成都小程序开发搭建,成武网站营销推广欢迎成武等地区企业咨询

嵌套管程锁死类似于死锁, 下面是一个嵌套管程锁死的场景:

Thread 1 synchronizes on A
Thread 1 synchronizes on B (while synchronized on A)
Thread 1 decides to wait for a signal from another thread before continuing
Thread 1 calls B.wait() thereby releasing the lock on B, but not A.

Thread 2 needs to lock both A and B (in that sequence)
    to send Thread 1 the signal.
Thread 2 cannot lock A, since Thread 1 still holds the lock on A.
Thread 2 remain blocked indefinately waiting for Thread1
    to release the lock on A

Thread 1 remain blocked indefinately waiting for the signal from
    Thread 2, thereby
    never releasing the lock on A, that must be released to make
    it possible for Thread 2 to send the signal to Thread 1, etc.


分享文章:Java并发之嵌套管程锁死详解-创新互联
本文路径:http://pwwzsj.com/article/hoech.html