[問題] 是否使用LOCK

看板C_Sharp (C#)作者 (BEN)時間11年前 (2014/03/19 01:30), 編輯推噓5(509)
留言14則, 7人參與, 最新討論串1/1
小弟功力粗淺,想請教各位先進 軟體內有個主資料表Main_DataTable 軟體有多個線程同時從不同網站抓取資料並寫入Main_DataTable 問題1: 如果不使用LOCK(Main_DataTable),會不會很容易造成資料上的衝突? 問題2: 如果LOCK(Main_DataTable),當網站1正在存取,其他線程wait, 是不是會有效率上的問題? 如果是的話,有沒有其他方式可以參考? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.240.166.163

03/19 08:21, , 1F
衝突是指?會有什麼問題?
03/19 08:21, 1F

03/19 19:28, , 2F
要用LOCK
03/19 19:28, 2F

03/19 22:08, , 3F
表中有主鍵,同步寫入很容易出現主鍵已存在
03/19 22:08, 3F

03/19 22:08, , 4F
已經有加過判斷當主鍵不存在才寫入,還是會發生
03/19 22:08, 4F

03/19 22:09, , 5F
請問G大,那問題2會需要考慮到嗎?
03/19 22:09, 5F

03/19 22:14, , 6F
回樓上 迴圈裡面用try catch包,主鍵存在會跳cath,執行
03/19 22:14, 6F

03/19 22:14, , 7F
下一個線程
03/19 22:14, 7F

03/19 22:22, , 8F
資料碰撞本來就要等一下阿 等看你是要等一下還是要
03/19 22:22, 8F

03/19 22:22, , 9F
資料錯誤吧XD 答案應該很明顯
03/19 22:22, 9F

03/19 22:27, , 10F
恩恩~感謝樓上兩位G大
03/19 22:27, 10F

03/19 23:09, , 11F
要正確性效率就會低一點 看你怎麼取捨...
03/19 23:09, 11F

03/19 23:12, , 12F
改設計的話~就"可能"不用lock~端看有沒有可能不建主鍵先寫
03/19 23:12, 12F

03/19 23:13, , 13F
入~之後再補...
03/19 23:13, 13F

03/20 01:36, , 14F
主鍵用Guid跟他賭XD
03/20 01:36, 14F
文章代碼(AID): #1JA8AYPO (C_Sharp)
文章代碼(AID): #1JA8AYPO (C_Sharp)