首页 > 编程语言 >《Java核心技术I》死锁

《Java核心技术I》死锁

时间:2024-12-07 17:57:34浏览次数:5  
标签:转账 Java 账户 核心技术 阻塞 300 死锁 线程

死锁

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

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

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

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

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

待续。。。

标签:转账,Java,账户,核心技术,阻塞,300,死锁,线程
From: https://blog.csdn.net/qq_36324341/article/details/144313928

相关文章

  • 毕业设计-基于Java+SpringBoot+Vue校园墙小程序(源码+数据库+开题+项目说明+代码讲解)
    博主介绍:本人专注于java/前端/数据库/微信小程序技术领域的开发,以及五年的计算机毕业设计方面的实战开发经验和技术积累;本人也是多年的全栈开发人员;希望我发布的此篇文件可以帮助到您......
  • 毕业设计-基于Java+SpringBoot+Vue智慧校园小程序(源码+数据库+开题+项目说明+代码讲解
    博主介绍:本人专注于java/前端/数据库/微信小程序技术领域的开发,以及五年的计算机毕业设计方面的实战开发经验和技术积累;本人也是多年的全栈开发人员;希望我发布的此篇文件可以帮助到您......
  • 第二部分:基础知识 5.控制流 --[JavaScript 新手村:开启编程之旅的第一步]
    第二部分:基础知识5.控制流--[JavaScript新手村:开启编程之旅的第一步]JavaScript是一种广泛使用的编程语言,尤其在网页开发中。控制流(ControlFlow)是指程序执行的顺序。通过控制流语句,你可以控制代码按照特定的逻辑顺序执行,而不是从上到下依次执行每一行。1.条件语句:i......
  • Java日志记录几种实现方案
    在平时使用到一些软件中,比如某宝或者某书,通过记录用户的行为来构建和分析用户的行为数据,同时也能更好优化产品设计和提升用户体验。比如在一个订单系统中,需要确定追踪用户的行为,比如:登录/登出浏览商品加购商品搜索商品关键字下单上述行为就需要使用到日志系统来存储或者记......
  • Java春招大厂面试题
    文章目录软件开发2024春招大厂面试题1.redis的跳表是怎么实现的?2.MVCC实现原理3.Redis怎么实现延时消息4.http默认端口号是多少5.http的几种请求(get、post…)有什么区别1.GET2.POST6.Http和Https的区别7.tcp协议中,三次握手四次挥手是怎样的1.什么是三次握手2.......
  • 蓝桥杯 2024 省赛 C++ B组 R 格式 (JAVA面向对象 高精度 纯api题解)
    解题思路:由于数位较大这里采用高精度,又因为高精度写起来比较麻烦所以这里直接采用JAVAapi中的高精度浮点数类型和高精度整数类型,应为高精度浮点数类型四舍五入较为麻烦所以这里改为手动四舍五入importjava.math.BigDecimal;importjava.math.BigInteger;importjava.util......
  • 接龙数列(第十四届蓝桥杯C++B组JAVA题解 动态规划)
    对于一个长度为 KK 的整数数列:A1,A2,...,AK,我们称之为接龙数列当且仅当 Ai 的首位数字恰好等于 Ai−1 的末位数字(2≤i≤K)。例如 12,23,35,56,61,11是接龙数列;12,23,34,56不是接龙数列,因为 56的首位数字不等于 3434 的末位数字。所有长度为 11 的整数数列都......
  • 网上图书购物管理系统|Java|SSM|VUE| 前后端分离
    【一】可以提供远程部署安装,包扩环境【二】提供软件相关的安装包【三】如果需要提供java入门资料可咨询             【技术栈】1⃣️:架构:B/S、MVC2⃣️:系统环境:Windowsh/Mac3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7+4⃣️:技术栈:Java、Mysql、S......
  • 基于微信平台健身小助手小程序的设计与实现【java或python】-计算机毕业设计源码+LW文
    选题的意义与目的网络和科技的进步以及人们生活条件的提高都让微信小程序越来越平民化,深入日常生活中。我国非常强调体育以及健身,需要不断的让更多人参与到健身中,因为健身不仅可以锻炼身体,也能锻炼意志,有了健康的身体,就可以好好的努力工作,努力学习,为国家做出应有的贡献。有一......
  • 网上图书购物管理系统|Java|SSM|VUE| 前后端分离
    【一】可以提供远程部署安装,包扩环境【二】提供软件相关的安装包【三】如果需要提供java入门资料可咨询             【技术栈】1⃣️:架构:B/S、MVC2⃣️:系统环境:Windowsh/Mac3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7+4⃣️:技术栈:Java、Mysql、S......