[问题] 是否使用LOCK

楼主: unstoppable (BEN)   2014-03-19 01:30:08
小弟功力粗浅,想请教各位先进
软件内有个主资料表Main_DataTable
软件有多个线程同时从不同网站抓取资料并写入Main_DataTable
问题1:
如果不使用LOCK(Main_DataTable),会不会很容易造成资料上的冲突?
问题2:
如果LOCK(Main_DataTable),当网站1正在存取,其他线程wait,
是不是会有效率上的问题?
如果是的话,有没有其他方式可以参考?
作者: m339606 (mize)   2014-03-19 08:21:00
冲突是指?会有什么问题?
作者: GoalBased (Artificail Intelligence)   2014-03-19 19:28:00
要用LOCK
楼主: unstoppable (BEN)   2014-03-19 22:08:00
表中有主键,同步写入很容易出现主键已存在已经有加过判断当主键不存在才写入,还是会发生请问G大,那问题2会需要考虑到吗?
作者: g66932007 (孤单的人)   2014-03-19 22:14:00
回楼上 循环里面用try catch包,主键存在会跳cath,执行下一个线程
作者: GoalBased (Artificail Intelligence)   2014-03-19 22:22:00
资料碰撞本来就要等一下阿 等看你是要等一下还是要资料错误吧XD 答案应该很明显
楼主: unstoppable (BEN)   2014-03-19 22:27:00
恩恩~感谢楼上两位G大
作者: f1234518456 (...........)   2014-03-19 23:09:00
要正确性效率就会低一点 看你怎么取舍...
作者: andymai (人生只有一次)   2014-03-19 23:12:00
改设计的话~就"可能"不用lock~端看有没有可能不建主键先写入~之后再补...
作者: Litfal (Litfal)   2014-03-20 01:36:00
主键用Guid跟他赌XD

Links booklink

Contact Us: admin [ a t ] ucptt.com