作者unstoppable (BEN)
看板C_Sharp
标题[问题] 是否使用LOCK
时间Wed Mar 19 01:30:08 2014
小弟功力粗浅,想请教各位先进
软体内有个主资料表Main_DataTable
软体有多个线程同时从不同网站抓取资料并写入Main_DataTable
问题1:
如果不使用LOCK(Main_DataTable),会不会很容易造成资料上的冲突?
问题2:
如果LOCK(Main_DataTable),当网站1正在存取,其他线程wait,
是不是会有效率上的问题?
如果是的话,有没有其他方式可以参考?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.240.166.163
1F:→ m339606:冲突是指?会有什麽问题? 03/19 08:21
2F:推 GoalBased:要用LOCK 03/19 19:28
3F:→ unstoppable:表中有主键,同步写入很容易出现主键已存在 03/19 22:08
4F:→ unstoppable:已经有加过判断当主键不存在才写入,还是会发生 03/19 22:08
5F:→ unstoppable:请问G大,那问题2会需要考虑到吗? 03/19 22:09
6F:推 g66932007:回楼上 回圈里面用try catch包,主键存在会跳cath,执行 03/19 22:14
7F:→ g66932007:下一个线程 03/19 22:14
8F:推 GoalBased:资料碰撞本来就要等一下阿 等看你是要等一下还是要 03/19 22:22
9F:→ GoalBased:资料错误吧XD 答案应该很明显 03/19 22:22
10F:→ unstoppable:恩恩~感谢楼上两位G大 03/19 22:27
11F:推 f1234518456:要正确性效率就会低一点 看你怎麽取舍... 03/19 23:09
12F:→ andymai:改设计的话~就"可能"不用lock~端看有没有可能不建主键先写 03/19 23:12
13F:→ andymai:入~之後再补... 03/19 23:13
14F:推 Litfal:主键用Guid跟他赌XD 03/20 01:36