日期:2014-05-18  浏览次数:20723 次

多线程并发操作数据库时经常报出读写冲突的错误,这是怎么回事呢?
请问下各位,我程序开了5个线程,每个线程抓取指定网站的网页,它们的工作流程都一样,就是被指定的网站不同。在每个线程里都有对server   2000   的select、insert操作,只有这两种操作。我只开一个线程运行时不出错,同时开5个线程就不定时的报出读写冲突的错误,这是怎么回事呢?
      这是我的毕设,老师下周要看演示,希望各位能帮帮忙,呵呵,多谢了!

------解决方案--------------------
常见的并发问题,使用锁和事务来控制吧。
------解决方案--------------------
最快的方法 ,将你的 select 全部改成 select .. from tb with(nolock)
------解决方案--------------------
使用

select *
from 表名 with(nolock)


--不对表加锁进行访问

即使有个用户正在delete 表名,也可以查询出当前表的数据
------解决方案--------------------

select * from 表名 with(nolock)

------解决方案--------------------
从根本上解决,还需要检查前台代码的实现方式,优化SQL