多线程环境下对数据库进行添加,删除,修改操作会早成数据库死锁吗?

vcshcn 2005-10-22 10:13:32
多线程环境下对数据库进行添加,删除,修改操作会早成数据库死锁吗?

如果会,该如何解决呢?
...全文
620 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
gogon 2005-10-31
  • 打赏
  • 举报
回复
当死锁发生时,用户收到如下错误。

Transaction (Process ID xxx) was deadlocked on (xxx) resources with another process and has been chosen as the deadlock victim. Rerun the transaction.

错误标识出事务在其上被锁定的资源。该资源可以是锁、并行(或通讯缓冲区)、等待线程或它们之间的组合。

要解决死锁,就必须终止循环中的一个参与者。选取死锁牺牲品时,Microsoft® SQL Server™ 2000 会查看所有的参与线程以及每个线程做了多少工作。通常,SQL Server 会选择工作量最小的参与线程作为死锁牺牲品。

象sqlServer这种商业性数据库应该不会解决不了死锁吧,除非创造死锁的速度超过解锁的速度
gogon 2005-10-31
  • 打赏
  • 举报
回复
学习,哪位大虾的答案是正确的啊?
vcshcn 2005-10-29
  • 打赏
  • 举报
回复
举个例子,会不会有这种情况
线程a : 启动事物, 更新表a , 请求表b ,结束事物
线程b : 启动事物, 更新表b , 请求表a ,结束事物

两个线程会不会形成互相等待的局面,造成死锁
leekooqi 2005-10-25
  • 打赏
  • 举报
回复
为什么不用Statement.excueteBatch()呢?
vcshcn 2005-10-25
  • 打赏
  • 举报
回复
哦,谁能说的详细一些
homeland520 2005-10-23
  • 打赏
  • 举报
回复
很少出现的
yhmin 2005-10-23
  • 打赏
  • 举报
回复
一般来讲是不会的,是会排队的,但是有一种情况是肯定会出现死锁的

while(ture){

线程1;
线程2;
....

}



====目前尚在广州打铁,欢迎批评指证====
柯本 2005-10-23
  • 打赏
  • 举报
回复
与数据库也有关系
如果程序写得不好,像sybase,sqlserver就容易死锁,因为它们是基于页面的
像oracle就好得多,因为它的锁是基于列的
紫炎圣骑 2005-10-23
  • 打赏
  • 举报
回复
应该会有这种情况发生


在多线程的程序中要处理完善
masse 2005-10-23
  • 打赏
  • 举报
回复
如果程序写得不合理是会的,
我就遇到过
wzrain 2005-10-23
  • 打赏
  • 举报
回复
java里有实现线程同步的方法,保证一次只有一个线程执行
majy 2005-10-22
  • 打赏
  • 举报
回复
不会,数据库有自己的排队机制的

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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