作者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