关于J2EE中死锁问题的研究
?
大多数重要的应用程式都涉及高度并发性和多个抽象层。并发性和资源争用有关,并且是导致死锁问题增多的因素之一。多个抽象层使隔离并修复死锁环境的工作变得更加困难。
通常,当同时执行两个或两个以上的线程时,如果每个线程都占有一个资源并请求另一个资源,这时就会出现死锁情况。因为如果一个线程不能获取资源,则所有线程都不能继续执行,我们称那个特定的线程被阻塞;如果每个线程都由于同组中另一个线程所占有的资源而被阻塞,我们就称这个线程组被死锁。
在本文中,我们将讨论发生在典型的重要J2EE应用程式中的两大类死锁情况:简单数据库死锁和跨资源死锁。虽然我们的讨论基于J2EE平台,但也适用于其他技术平台。
数据库死锁
在数据库中,如果一个连接占用了另一个连接所需的数据库锁,则他能阻塞另一个连接。如果两个或两个以上的连接相互阻塞,则他们都不能继续执行,这种情况称为死锁。
数据库死锁问题不易处理,这是因为涉及到的锁定通常不是显式的。通常,对数据行进行隐式更新时,需要锁定该数据行,执行更新,然后在提交或回滚封闭事务时释放锁。由于数据库平台、设置的隔离级及查询提示的不同,获取的锁可能是细粒度或粗粒度的,他会阻塞(或不阻塞)其他对同一数据行、表或数据库的查询。
获取的锁依赖于内部生成的查询计划。当数据大小和分步随时间发生变化时,该计划也可能改动。这样在一个环境中获取一组锁的查询能尝
您可能关注的文档
最近下载
- 标准图集-11J935 幼儿园建筑构造与设施.pdf VIP
- 白集镇中心卫生院麻醉记录单(正反面打印).doc VIP
- 中兴5G-NR-NSA分框站点开通指导手册.docx VIP
- 基于孝义皮影元素的漆艺首饰设计.pdf VIP
- 2026年大学生入党申请书标准模板.docx VIP
- 餐饮店合股投资协议书.docx VIP
- 深度解析(2026)《GBT 41100-2021土方机械和越野伸缩臂叉车 预期公路行驶机器的设计要求》.pptx VIP
- 果蔬冷链物流温度实时监控与品质劣变预测系统.docx
- 最新版三年级下册综合实践活动期末复习资料.pdf VIP
- 考前押题07 读后续写必练20题(期末复习专项训练)(解析版).docx VIP
原创力文档

文档评论(0)