
JVM / JUC 如何定位&避免死锁
什么是死锁死锁Deadlock是指在操作系统里两个或多个并发线程在执行过程中因争夺资源而造成的一种互相等待的现象且无外力干预的情况下这些线程都无法进一步执行下去每个线程至少持有一个资源并等待其他线程所持有的资源才能继续执行从而形成了一个循环等待链导致所有线程都被阻塞无法顺利完成假设有两个仓库A和B它们之间在进行商品调拨线程T负责将商品从仓库A调拨到仓库B而线程T负责将商品从仓库B调拨到仓库A每个线程在执行调拨操作时需要先获取调出仓库和调入仓库的锁以保证调拨操作的原子性现在假设线程T已经获取了仓库A的锁并且正在等待获取仓库B的锁而线程T已经获取了仓库B的锁并且正在等待获取仓库A的锁这时线程T持有
2024-08-24 16:09 1254 0 死锁