14.5.9 死锁 示例: 账户1:200元 账户2:300元 线程1: 从账户 1 转 300 元到账户 2 线程2: 从账户 2 转 400 元到账户 1 过程模拟: 账户 1 期望转 300 块给账户 2,钱不够,陷入阻塞; 账户
14.5.9 死锁
示例:
账户1:200元 账户2:300元
线程1: 从账户 1 转 300 元到账户 2
线程2: 从账户 2 转 400 元到账户 1
过程模拟:
账户 1 期望转 300 块给账户 2,钱不够,陷入阻塞;
账户 2 期望转 400 块给账户 1, 钱不够,陷入阻塞。
结果:
谁都不能转账,两个转账过程都在阻塞,无法继续执行。
死锁:线程相互等待,无法继续执行下去的情况,叫做死锁。
我们用 jconsole 打开我们的程序相关内容进行监控,在此之前,先把 包含 main() 的部分改成下面这样,先试试 jconsole 通不通:
❤