当前位置: 首页 > news >正文

《Java核心技术I》死锁

死锁

  1. 账户1:200元
  2. 账户2: 300元
  3. 线程1:从账号1转300到账户2
  4. 线程2:从账户2转400到账户1

如上,线程1和线程2显然都被阻塞,两个账户的余额都不足以转账,两个线程都无法执行下去。

有可能会因为每一个线程要等待更多的钱款存入而导致所有线程都被阻塞,这样的状态称为死锁(deadlock)。通俗的说两个或多个线程互相持有对方释放锁的必要资源,导致都无法执行。

如果把之前的例子中,每次转账至多1000的限制去掉,很快就会发生死锁,试试看。

提示:当程序挂起时,按下Ctrl+\,将得到一个线程转储,会列出所有线程。可以运行jconsole并参考线程面板。

待续。。。

http://www.lryc.cn/news/499293.html

相关文章:

  • 【Windows11系统局域网共享文件数据】
  • MCU、ARM体系结构,单片机基础,单片机操作
  • 在办公室环境中用HMD替代传统显示器的优势
  • ssm 多数据源 注解版本
  • selenium常见接口函数使用
  • STM32F103单片机使用STM32CubeMX新建IAR工程步骤
  • 刷题重开:找出字符串中第一个匹配项的下标——解题思路记录
  • product/admin/list?page=0size=10field=jancodevalue=4562249292272
  • 人工智能机器学习无监督学习概念及应用详解
  • APM装机教程(五):测绘无人船
  • 微信小程序 运行出错 弹出提示框(获取token失败,请重试 或者 请求失败)
  • IDEA的service窗口中启动类是灰色且容易消失
  • R中利用ggplot2绘制气泡图
  • CID引流电商
  • 在google cloud虚拟机上配置anaconda虚拟环境简单教程
  • windows下用vs搭配clang一起生成抽象语法树
  • 输入法:点三下输入一个汉字
  • URL访问网址的全过程
  • Thonny IDE + MicroPython + ESP32 + GY-302 测量环境中的光照强度
  • 小程序-基于java+SpringBoot+Vue的智慧校园管理系统设计与实现
  • 基于Java+Swing+Mysql的网络聊天室
  • javascript 的map()和join()
  • 深入理解 PyTorch 自动微分机制与自定义 torch.autograd.Function
  • 《C++ 赋能 K-Means 聚类算法:开启智能数据分类之旅》
  • 对 JavaScript 说“不”
  • spring下的beanutils.copyProperties实现深拷贝
  • 蓝桥杯二分题
  • 3D数字化革新,探索博物馆的正确打开新方式!
  • 工业检测基础-工业相机选型及应用场景
  • 通过 FRP 实现 P2P 通信:控制端与被控制端配置指南