开发过程中怎样来考虑并发性和死锁的问题

xdfzmh 2003-08-22 07:31:26
开发过程中怎样来考虑并发性和死锁的问题
...全文
48 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Wnyu 2003-08-24
  • 打赏
  • 举报
回复
用事务及安全点。Oracle中的事务本来就是并发的。我们一般定立一个写表顺序机制(因为只有定表时才出现锁定)。
如有表A,B, C, D, E。
a程序会写到A, B,C表。
b程序会写到A,C,E表。

错误做法:
a程序写入顺序为A,C,B
b程序写入顺序为C, A, E
当a程序已锁定A,而且准备锁定C。 同时,b程序要锁定C, 发现C未被锁定,于是锁定C,接着又要锁定A。这样就现死锁(因为A已被锁定,而已等待锁定C)。

正确做法:(按已规定的锁定顺序)
a程序写入顺序为A,B, C
b程序写入顺序为A, C, E
当a程序已锁定A, 而且要锁定其他表(如B,C)。 此时,b程序要锁定A时发现A已锁定,此时等待A,直到A解锁。如此类推....
klbt 2003-08-23
  • 打赏
  • 举报
回复
主要考虑事务要及时提交,事务不宜过大
yuxuan 2003-08-23
  • 打赏
  • 举报
回复
我觉得首先应该知道Oracle并发处理机制

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧