请教高手这是什么错误 ( 积分: 30 )

  • 主题发起人 主题发起人 delphixyz
  • 开始时间 开始时间
D

delphixyz

Unregistered / Unconfirmed
GUEST, unregistred user!
我的多线程程序,执行的任务就是读写数据库(SQL2000),运行也算正常,就是不停的出现下面的错误:
事务(进程 ID 106)与另一个进程已被死锁在 lock 资源上,且该事务已被选作死锁牺牲品。请重新运行该事务。
出现这个错误后程序仍然可以执行,我想知道这是为什么,怎么避免,谢谢各位高人
 
我的多线程程序,执行的任务就是读写数据库(SQL2000),运行也算正常,就是不停的出现下面的错误:
事务(进程 ID 106)与另一个进程已被死锁在 lock 资源上,且该事务已被选作死锁牺牲品。请重新运行该事务。
出现这个错误后程序仍然可以执行,我想知道这是为什么,怎么避免,谢谢各位高人
 
應該是你的不同進程同時訪問數據庫的某些表,結果造成死鎖,
並且一個被自動干掉了,用sp_lock查詢分析器裡面看一下,
或者乾脆企業管理器裡面>管理>目前活動>鎖 看一下
 
to victor_zh:
果然是高人,问题是我不可能阻止这种情况的发生,有的进程在写,有的进程在读,有的进程在删除,情况有些复杂,我怎么避免这种情况的发生呢?我接着要做另外一个,可能一个程序有十个左右的线程会同时向一个表里写数据,这不玩完了吗?
多谢了
 
老兄进程没有同步,用临界区或者信号量,有好几种方法你可以选择,在delphibbs上有好多这样的东东
 
用临界区或者信号量
 
后退
顶部