当前位置 : 主页 > 编程语言 > java >

第14章 多线程(6) 死锁

来源:互联网 收集:自由互联 发布时间:2022-07-13
14.5.9 死锁 示例: 账户1:200元 账户2:300元 线程1: 从账户 1 转 300 元到账户 2 线程2: 从账户 2 转 400 元到账户 1 过程模拟: 账户 1 期望转 300 块给账户 2,钱不够,陷入阻塞; 账户


第14章 多线程(6) 死锁_java

第14章 多线程(6) 死锁_i++_02

 14.5.9 死锁

示例:

账户1:200元 账户2:300元

线程1: 从账户 1 转 300 元到账户 2

线程2: 从账户 2 转 400 元到账户 1

过程模拟:

账户 1 期望转 300 块给账户 2,钱不够,陷入阻塞;

账户 2 期望转 400 块给账户 1, 钱不够,陷入阻塞。

结果:

谁都不能转账,两个转账过程都在阻塞,无法继续执行。

死锁:线程相互等待,无法继续执行下去的情况,叫做死锁。

我们用 jconsole 打开我们的程序相关内容进行监控,在此之前,先把 包含 main() 的部分改成下面这样,先试试 jconsole 通不通:

网友评论